JVM 和时区
我遇到了Java时区的问题,如果有人可以帮助我的话。
我有一个在tomcat 5.5上运行的Web应用程序(不确定这是否相关),具有以下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
在 Web 应用程序中,我在某个时间点调用 ,并在日志中打印此时间戳。Calendar.getInstance().getTime()
问题是,尽管服务器的时间在 EST 中,但此时间戳在 EDT 中返回。因此,返回的日期比应有的日期晚 1 小时。
我想实现的是使返回与系统相同的时区的日期。Calendar.getInstance().getTime()
我搜索了论坛,发现了一些建议,即jvm没有正确读取系统的时区。我尝试过使用参数启动tomcat,但系统不断返回EDT时区的时间戳。请注意 - 尝试使用非est参数似乎有效。这些问题似乎具有不同的性质。-Duser.timezone=EST
-Duser.timezone
我的问题与这个SO问题有些相似。但是,我只是尝试将日期与系统所在的时区相同,而无需任何特殊处理。
你能帮忙吗?