在 PHP 文档中,支持的时区列表 http://php.net/manual/en/timezones.others.php, UTC
被列出两次:
这两者之间有概念上的区别吗,或者它们只是同义词?
简短回答
NO, 有没有不同时区之间UTC
and Etc/UTC
.
带有上下文的长答案
Etc/UTC
是 Olson-timezone-database 中的时区 (兹数据库 https://en.wikipedia.org/wiki/Tz_database),也称为IANA 时区数据库 https://www.iana.org/time-zones,其中所有时区都遵循统一的命名约定:Area/Location
.
虽然大多数时区(例如“柏林”)可以归因于一个区域(例如“欧洲”,导致“欧洲/柏林”),但某些时区不能归因于世界上的任何区域(想想大陆或海洋)。因此,特殊区域Etc
(Etcetera https://www.ietf.org/timezones/data/etcetera)被介绍。区域Etc
主要适用于行政时区,例如UTC
.
综上:为了符合命名约定,将通用协调时(时区)命名为Etc/UTC
在 tz 数据库中。
关于 tz 数据库和 POSIX 时区的说明
对于 UTC 以外的管理时区(例如GMT+4
, GMT-8
),tz数据库使用POSIX 风格的标志 http://www.ibm.com/developerworks/aix/library/au-aix-posix/index.html#10.UnderstandthePOSIXformat%7Coutline在区域名称中。 POSIX 对于格林威治后面(格林威治以西)的区域有正号,对于格林威治之前(格林威治以东)的区域有负号。
此 POSIX 约定与当今广泛使用的时区定义相反ISO 8601 https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC。在 ISO 8601 时区格式中,负号表示该区域落后于 UTC(格林威治以西),正号表示该区域早于 UTC(格林威治以东)。示例:ISO 8601 中的“+03:00”等于 POSIX 中的 GMT-3; ISO 8601 中的“−05”等于 POSIX 中的“GMT5”。
ISO 8601 约定现已成为当今的有效标准,这使得 POSIX 时区对于一些读者来说显得令人困惑。
POSIX 时区定义的可能原因
- POSIX 是 UNIX 的一部分,UNIX 是在美国开发的,落后于 UTC(格林威治以西)。 POSIX 格式允许美国时区表示为 EST5(即“东部标准时间,比格林威治晚 5 小时)、PST8(即“太平洋标准时间,比格林威治晚 5 小时)”,即省略 (+) 符号。
- 如今,大多数计算机程序和操作系统在内部都以 UTC 时间执行所有操作。使用 POSIX 风格的标志,您可以添加时间和时区以获得 UTC 时间。示例:“03:30 PST8”或“03:30 GMT+8”表示“11:30 UTC”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)