Почему JVM показывает неправильный часовой пояс для (UTC+02:00) Стамбул?


JVM не показывает истинную дату, время и часовой пояс для (UTC+02:00) Istanbul.

Например: Сейчас в Стамбуле 12: 30 вечера.


Изменить системный часовой пояс на (UTC+02:00) Стамбул

Системная дата: 12: 30 03.07.2013

Java ouput: 05: 00: 00 VET 03.07.2013

JVM uzer.часовой пояс: Америка / Каракас


Изменить системный часовой пояс на (UTC-08:00) Pasific Time (US&Canada)

Системная дата: 02: 30 03.07.2013

Java ouput: 02: 30: 00 PDT 03.07.2013

JVM uzer.часовой пояс: Америка / Лос-Анджелес


Изменить системный часовой пояс на (UTC+02:00) Jarusalem

Системная дата: 12: 30 03.07.2013

Java ouput: 12: 30: 00 IDT 03.07.2013

JVM uzer.часовой пояс: Азия / Иерусалим


Это моя среда Java: java версия " 1.6.0_37" Среда выполнения Java(TM) SE (сборка 1.6.0_37-b06) Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 20.12-b01, смешанный режим) Windows 8

Есть ли какие-либо один, чтобы объяснить эту разницу?

Спасибо

2 2

2 ответа:

Это известная ошибка Java. Это было исправлено в Java 7 update 4 (см. Этот отчет об ошибке).

Оглядываясь на некоторые другие вопросы SO, кажется, что это проблема Java-on-Windows. Пожалуйста, взгляните на Как использовать идентификатор часового пояса Java в приложении Windows (не Java)? , особенно ответ 1, который указывает на ссылку Википедии, которая может решить вашу проблему отображения