在 PHP 文档中,支持的时区列表列出UTC
了两次:
UTC
Etc/UTC
这两者之间有什么概念上的区别,还是它们只是同义词?
首先,回答这个问题:和时区
之间没有区别。UTC
Etc/UTC
Etc/UTC
是 Olson-timezone-database ( tz 数据库) 中的一个时区,也称为IANA-timezones-database,其中所有时区都符合统一的命名约定:Area/Location
.
由于某些时区不能归属于世界上的任何区域(即大陆或海洋),因此引入了特殊区域Etc
(Etcetera)。这主要适用于行政时区,例如UTC
.
因此,为了符合命名约定,通用协调时间(区域)Etc/UTC
在 tz 数据库中命名。
对于 UTC 以外的管理时区(例如GMT+4
, GMT-8
),tz 数据库在区域名称中使用POSIX 样式的符号。POSIX 对格林威治后面(格林威治以西)的区域有积极迹象,对格林威治之前(格林威治以东)的地区有负面迹象。
时区中的 POSIX 样式标志与当今广泛使用且最常用的ISO 8601中的时区定义相反。在 ISO 8601 时区格式中,负号表示区域在 UTC(格林威治以西)之后,正号表示区域在 UTC(格林威治以东)之前。这已成为当今的标准用法。
POSIX 中相反定义的可能原因是:
Etc/UTC
是显示名称为 的时区UTC
。也就是说,根据IANA 的时区数据库,它们是同一时区的长名称和短名称。
ETC/GMT+4 与 GMT-4 相同。
public static void main(String[] args) {
TimeZone tz = TimeZone.getTimeZone("Etc/GMT-7");
System.out.println(tz);
tz = TimeZone.getTimeZone("GMT+7");
System.out.println(tz);
}
你可以自己测试一下。
但是我不知道ETC是什么意思..