2

JVM 不显示 (UTC+02:00) 伊斯坦布尔的真实日期时间和时区。

例如:现在时间是伊斯坦布尔的下午 12:30。


将系统时区更改为 (UTC+02:00) 伊斯坦布尔

系统日期:2013 年 7 月 3 日下午 12:30

Java 输出:05:00:00 VET 03.07.2013

JVM uzer.timezone:美国/加拉加斯


将系统时区更改为 (UTC-08:00) 太平洋时间(美国和加拿大)

系统日期:02:30 AM 03.07.2013

Java 输出:02:30:00 PDT 03.07.2013

JVM uzer.timezone: America/Los_Angeles


将系统时区更改为 (UTC+02:00) Jarusalem

系统日期:2013 年 7 月 3 日下午 12:30

Java 输出: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

有没有人可以解释这种差异?

谢谢

4

2 回答 2

4

它是已知的 Java 错误。它已在 Java 7 更新 4 中修复(请参阅此错误报告)。

于 2013-07-03T09:52:17.247 回答
3

回顾其他一些 SO 问题,这似乎是一个 Java-on-Windows 问题。请查看 如何在 Windows(非 Java)应用程序中使用 Java 时区 ID? ,尤其是答案 1,它指向可以解决您的映射问题的维基百科链接

于 2013-07-03T09:51:47.373 回答