UTC和Etc / UTC时区之间是否存在差异?

时间:2013-01-02 20:18:23

标签: php datetime timezone utc

在PHP文档中,list of supported time zonesUTC列出了两次:

  • UTC
  • Etc/UTC

这两者之间是否有任何概念上的区别,或者它们只是同义词?

3 个答案:

答案 0 :(得分:28)

Etc/UTC是为显示名称为UTC的时区指定的。也就是说,根据IANA's time zone database,它们是同一时区的长短名称。

答案 1 :(得分:28)

首先,回答这个问题:
UTCEtc/UTC时区之间没有区别。

Etc/UTC是Olson-timezone-database(tz database)中的时区,也称为IANA-timezones-database,其中所有时区都遵循统一的命名约定:{{1} }。

由于某些时区不能归因于世界上的任何区域(即大陆或海洋),因此引入了特殊区域Area/LocationEtcetera)。这主要适用于Etc等行政时区 因此,为了符合命名约定,通用协调时间(区域)在tz数据库中被命名为UTC

对于UTC以外的管理时区(例如Etc/UTCGMT+4),tz数据库在区域名称中使用POSIX-style signs。 POSIX在格林威治(格林威治以西)之后的区域有积极的迹象,在格林威治以前的区域(格林威治以东)有负面迹象。

时区中的POSIX风格标志与时区中定义的时区相反,现在广泛使用ISO 8601。在ISO 8601时区格式中,负号表示区域位于UTC(格林威治以西)之后,而正号表示区域位于UTC之前(格林威治以东)。这已成为当今的标准用法。

POSIX中相反定义的可能原因是:

  • POSIX是UNIX的一部分,它是在美国开发的,它位于UTC(格林威治以西)之后。 POSIX格式允许美国时区表示为EST5,PST8,即省略(+)符号。
  • 通常,计算机程序和操作系统在UTC内部执行所有操作。使用POSIX风格的标志,您可以添加时间和时区以获得UTC时间。例如:“03:30 PST8”或“03:30 GMT + 8”表示它是“11:30 UTC”。

答案 2 :(得分:0)

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的含义......