【发布时间】:2012-12-17 04:55:35
【问题描述】:
【问题讨论】:
-
来自页面:“请不要使用此处列出的任何时区(UTC 除外),它们仅出于向后兼容的原因而存在。” - 我想知道这是否也包括
Etc/UTC? -
可能:关注chrisbulmer's answer,我怀疑它是非标准的!
【问题讨论】:
Etc/UTC?
首先,回答问题:UTC 和 Etc/UTC 时区之间没有区别。
Etc/UTC 是 Olson-timezone-database (tz database) 中的一个时区,也称为 IANA-timezones-database,其中所有时区都符合统一的命名约定:Area/Location。
由于某些时区不能归属于世界上的任何区域(即大陆或海洋),因此引入了特殊区域 Etc (Etcetera)。这主要适用于管理时区,例如UTC。
因此,为了符合命名约定,通用协调时间(时区)在 tz 数据库中被命名为Etc/UTC。
对于 UTC 以外的管理时区(例如 GMT+4、GMT-8),tz 数据库在区域名称中使用 POSIX-style signs。 POSIX 对格林威治后面(格林威治以西)的区域有正面迹象,对格林威治之前(格林威治东部)的区域有负面迹象。
时区中的 POSIX 样式标志与时区定义相反,时区在当今广泛使用且主要使用 ISO 8601。在 ISO 8601 时区格式中,负号表示区域在 UTC(格林威治以西)之后,正号表示区域在 UTC(格林威治以东)之前。这已成为当今的标准用法。
POSIX 中相反定义的可能原因是:
【讨论】:
Etc/UTC 是显示名称为UTC 的时区。也就是说,根据IANA's time zone database,它们是同一时区的长名称和短名称。
【讨论】:
Etc/GMT+1 等。我很惊讶只提出了 Etc 版本,我认为普遍的共识是使用 GMT+1 ,而不是“反向”版本!
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是什么意思..
【讨论】: