我运行以下 Java 代码:
TimeZone tz1 = TimeZone.getTimeZone("Etc/GMT-3");
System.out.println(tz1.getDisplayName());
显示器是GMT+03:00
!
似乎当我们使用具有诸如 id 的时区时Etc/GMTxx
,符号是相反的。为什么 ?
那是 ETC 风格:
http://en.wikipedia.org/wiki/Zoneinfo
“Etc”的特殊区域用于一些行政区,特别是“Etc/UTC”,它代表协调世界时。为了符合 POSIX 风格,那些以“Etc/GMT”开头的区域名称的符号与大多数人的预期相反。在这种风格中,格林威治标准时间以西的区域有一个正号,东部的区域有一个负号(例如,“Etc/GMT-14”是格林威治标准时间之前/东部的 14 小时。)