时区格式的差异?应该首选一种格式吗?
Differences in timezone format? Should one format be preferred?
每次我为服务器或 PHP 设置时区格式时,我都对冗余选项的数量感到困惑,例如:
American/Los_Angeles
US/Pacific
Etc/GMT-8
这些似乎都给出了相同的结果。一种格式应该优于另一种格式吗?有什么不同吗?
America/Los_Angeles
(不是“American”)是美国太平洋时区的首选 IANA 时区标识符。您可能应该使用这个,因为它是时区数据库中规范的“时区”条目。
US/Pacific
是同一时区的别名。它采用较旧的样式,从时区数据库使用国家名称作为前缀而不是更大的区域(大陆和海洋)开始。如果你愿意,你可以继续使用这个,因为它是时区数据库中的一个“Link”,它指向 America/Los_Angeles
.
Etc/GMT-8
对于美国太平洋时区不正确。它是 UTC+8 固定偏移量的管理标识符。它不包含有关夏令时的任何信息。另请注意,偏移量与我们通常使用的 ISO-8601 偏移量相反。所以 Etc/GMT-8
有一个固定的偏移量 UTC+8。一般来说,Etc/GMT*
区域只应在非常特殊的情况下使用,例如在国际水域的海上船舶计时。
您可能还想阅读维基百科上的 time zone database and refer to the list of time zones。
每次我为服务器或 PHP 设置时区格式时,我都对冗余选项的数量感到困惑,例如:
American/Los_Angeles
US/Pacific
Etc/GMT-8
这些似乎都给出了相同的结果。一种格式应该优于另一种格式吗?有什么不同吗?
America/Los_Angeles
(不是“American”)是美国太平洋时区的首选 IANA 时区标识符。您可能应该使用这个,因为它是时区数据库中规范的“时区”条目。
US/Pacific
是同一时区的别名。它采用较旧的样式,从时区数据库使用国家名称作为前缀而不是更大的区域(大陆和海洋)开始。如果你愿意,你可以继续使用这个,因为它是时区数据库中的一个“Link”,它指向 America/Los_Angeles
.
Etc/GMT-8
对于美国太平洋时区不正确。它是 UTC+8 固定偏移量的管理标识符。它不包含有关夏令时的任何信息。另请注意,偏移量与我们通常使用的 ISO-8601 偏移量相反。所以 Etc/GMT-8
有一个固定的偏移量 UTC+8。一般来说,Etc/GMT*
区域只应在非常特殊的情况下使用,例如在国际水域的海上船舶计时。
您可能还想阅读维基百科上的 time zone database and refer to the list of time zones。