【问题标题】:Is there a difference between the UTC and Etc/UTC time zones?UTC 和 Etc/UTC 时区之间有区别吗?
【发布时间】:2012-12-17 04:55:35
【问题描述】:

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

  • UTC
  • Etc/UTC

这两者之间有什么概念上的区别,还是它们只是同义词?

【问题讨论】:

  • 来自页面:“请不要使用此处列出的任何时区(UTC 除外),它们仅出于向后兼容的原因而存在。” - 我想知道这是否也包括Etc/UTC
  • 可能:关注chrisbulmer's answer,我怀疑它是非标准的!

标签: php datetime timezone utc


【解决方案1】:

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

Etc/UTC 是 Olson-timezone-database (tz database) 中的一个时区,也称为 IANA-timezones-database,其中所有时区都符合统一的命名约定:Area/Location

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

对于 UTC 以外的管理时区(例如 GMT+4GMT-8),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”。

【讨论】:

  • “Etc”是“Etcetera”的缩写,在这种情况下,它是对不适合任何其他组的时区的分组,即“其余”。
  • @chinoto:你想告诉我什么?这正是我在回答中所解释的(除其他外)。您在发表评论之前阅读了我的回答吗?
  • 我不知道我为什么要发表这样的评论...我记得是这样评论的,但是在这个页面上没有人不确定“Etc”是什么意思,很奇怪。
  • @chinoto:出于某种原因,我刚刚再次遇到这种威胁,并意识到另一个答案(见下文)以“但我不知道 ETC 是什么意思......”结束 - 我假设这就是您所指的。
  • 如果您需要来源,Wikipedia page 涵盖此信息。
【解决方案2】:

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

【讨论】:

  • 我不是这样理解这个文档的:“例如,TZ='Etc/GMT+4' 使用缩写“GMT+4”,对应于UTC 后4 小时(即格林威治以西)尽管许多人预计它意味着比 UTC 早 4 小时(即格林威治以东)。”所以它反过来了,除非 UTC 也这样做,否则它们真的是对立的!
  • @Benjamin:我们谈论的是偏移量为零的 UTC 时区。正零和负零是同一个数字,反正没有偏移量。
  • 我明白这一点,但我的问题同样适用于 Etc/GMT+1 等。我很惊讶只提出了 Etc 版本,我认为普遍的共识是使用 GMT+1 ,而不是“反向”版本!
【解决方案3】:

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是什么意思..

【讨论】:

  • Etc (ETC) 意思是 etcetera link
猜你喜欢
  • 1970-01-01
  • 2018-04-22
  • 2013-02-03
  • 2018-11-09
  • 2013-05-29
  • 2021-02-21
  • 1970-01-01
  • 2017-01-23
  • 2017-06-30
相关资源
最近更新 更多