Часы JRE отличаются (на один час вперед) от системной даты

У меня есть компьютер с Windows Server 2003, установленный на нем продукт cisco под названием «Cisco Voice Portal», этот продукт работает на версии JRE 1_5_0_12. Получение даты/времени либо:

new Date();

or

Calendar.getInstance();

всегда дата на один час опережает системную дату. Сначала я подумал, что это несоответствие часового пояса, однако это результат печати объекта даты:

Fri Oct 08 02:36:38 EST 2010

и системные часы также находятся в часовом поясе EST. что означает, что часовые пояса одинаковы. Системная дата правильная, системный компьютер — Сидней, Австралия. Любые предложения, чтобы исправить это? Заранее спасибо.


person guirgis    schedule 18.10.2010    source источник
comment
Я не знаком с часовым поясом Сиднея, но произошли ли какие-либо изменения в способе определения зимнего/летнего времени после выпуска 1.5.0.12? Это, как правило, решается парламентом или аналогичными учреждениями. Учитывая, что JRE 1.5.0.12 довольно старая, возможно, она не была обновлена, чтобы отразить такие изменения.   -  person Bruno    schedule 18.10.2010
comment
До 2007 года переход на летнее время начинался в последние выходные октября. С 2008 года изменение было перенесено на первые выходные октября, поэтому старая JRE не использует новые правила.   -  person jarnbjo    schedule 18.10.2010


Ответы (2)


Прежде всего, у JRE есть собственная база данных с информацией о часовых поясах, и она может отличаться или не отличаться от базы данных на вашей родной платформе.

Другая проблема, с которой вы можете столкнуться, заключается в том, что при запуске JRE вы могли указать локаль или часовой пояс, отличный от того, что используется на вашей хост-платформе, что также приведет к такому поведению.

PS: вы можете прочитать это Часто задаваемые вопросы от Oracle (например, Sun) о том, как (не) связаны часовые пояса платформы и JVM.

person Roland Tepp    schedule 18.10.2010
comment
Честно говоря, я не знал, что JRE и системные часы независимы. что касается страницы факсов, о которой вы упомянули, это очень интересно. однако я уже пробовал инструмент tzupdater, но он не решил проблему. Как указал Пуруш ниже, при использовании инструмента tzupdater в версии 1.5.0_12 есть ошибка. - person guirgis; 18.10.2010
comment
Также я не нашел никаких параметров, специфичных для локали, в сценариях выполнения. Я заменил файлы в jre/lib/zi/Australia файлами версии 1.6, но мне не повезло. Какие-либо предложения? Спасибо за ваш интерес. - person guirgis; 18.10.2010

Вы пытались перейти на более новую версию JRE? Обратитесь к ошибке 6595137, которая, похоже, исправлена ​​в версии 1.5.0_13.

person Purush Rudrakshala    schedule 18.10.2010
comment
К сожалению, я не могу этого сделать, JRE встроена в продукт. - person guirgis; 18.10.2010
comment
Решит ли эту проблему замена файлов в jre/lib/zi/Australia новыми (скажем, из java 1.6), так как я не могу обновить всю JRE? Спасибо - person guirgis; 18.10.2010