JVM未显示(UTC + 02:00)伊斯坦布尔的真实日期时间和时区。
例如: 现在时间是伊斯坦布尔下午12:30。
将系统时区更改为(UTC + 02:00)伊斯坦布尔
系统日期:2013年7月3日下午12:30
Java ouput:05:00:00 VET 03.07.2013
JVM uzer.timezone:America / Caracas
将系统时区更改为(UTC-08:00)Pasific Time(美国和加拿大)
系统日期:02:03 AM 03.07.2013
Java ouput:02:30:00 PDT 03.07.2013
JVM uzer.timezone:America / Los_Angeles
将系统时区更改为(UTC + 02:00)Jarusalem
系统日期:2013年7月3日下午12:30
Java ouput:12:30:00 IDT 03.07.2013
JVM uzer.timezone:亚洲/耶路撒冷
这是我的Java环境: java版“1.6.0_37” Java(TM)SE运行时环境(版本1.6.0_37-b06) Java HotSpot(TM)64位服务器VM(内置20.12-b01,混合模式) Windows 8
有没有人解释这种差异?
由于
答案 0 :(得分:4)
是known Java bug。它已在Java 7更新4中修复(请参阅this bug report)。
答案 1 :(得分:3)
回顾其他一些SO问题,这似乎是一个Java-on-Windows问题。请看看 How to use Java timezone id in a Windows (non-Java) application? ,尤其是回答1,它指向可能解决您的映射问题的维基百科链接