У меня проблема с часовыми поясами Java, если кто-нибудь может мне помочь.
У меня есть веб-приложение, работающее на tomcat 5.5 (не уверен, что это актуально), со следующей версией JVM
[someuser@webserver bin]$ java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode)
[someuser@webserver bin]$
Системная дата, скажем, -
[someuser@webserver bin]$ date
Mon Aug 15 09:09:46 EST 2011
В веб-приложении я в определенный момент звоню на Calendar.getInstance().getTime()
и печатаю эту метку времени в журналах.
Проблема в том, что эта метка времени возвращается в EDT, хотя время серверанаходится в EST.По этой причине возвращаемая дата на 1 час позже, чем должна.
Я хочу добиться, чтобы Calendar.getInstance().getTime()
вернул дату в том же часовом поясе, что и система.
У меня естьискал форумы и нашел несколько предложений о том, что jvm неправильно читает часовой пояс системы.Я попытался запустить tomcat с параметром -Duser.timezone=EST
, но система продолжает возвращать временные метки в часовом поясе EDT.Обратите внимание - попытка -Duser.timezone
с не-est параметром, похоже, работает.Проблемы, похоже, имеют другую природу.
Моя проблема как-то похожа на этот вопрос .Однако я только пытаюсь получить дату в том же часовом поясе, в котором находится система, без какой-либо специальной обработки.
Вы можете помочь?