时区的奇怪行为

时间:2013-04-25 11:55:27

标签: java timezone

我运行以下Java代码:

TimeZone tz1 = TimeZone.getTimeZone("Etc/GMT-3");
System.out.println(tz1.getDisplayName());

显示为GMT+03:00

似乎当我们使用带有Etc/GMTxx等ID的时区时,符号会反转。为什么?

1 个答案:

答案 0 :(得分:6)

那是ETC风格:

http://en.wikipedia.org/wiki/Zoneinfo

  

“Etc”的特殊区域用于某些管理区域,特别是代表协调世界时的“Etc / UTC”。为了符合POSIX风格,那些以“Etc / GMT”开头的区域名称与大多数人的期望相反。在这种风格中,格林威治标准时间以西的区域有一个正号,东方的名称有一个负号(例如“Etc / GMT-14”比格林威治标准时间提前14小时。