java时区setDefault效果

时间:2012-03-27 14:47:19

标签: java tomcat timezone default utc

关注How to store date/time and timestamps in UTC time zone with JPA and Hibernate我想将我的应用程序默认时区设置为UTC。 我的应用程序在Linux服务器上运行tomcat和其他一些应用程序。 服务器有其他运行更多应用程序的tomcat实例。

Timezone.setDefault(tz)会影响同一个tomcat实例上的其他应用吗?

它会影响其他tomcat实例上的其他应用吗?

是否可以仅为应用设置时区?我松散地记得有关安全管理器设置的内容,以便允许这样做。

2 个答案:

答案 0 :(得分:14)

java中的默认时区设置有点棘手。默认情况下,如果设置默认时区,则会影响整个jvm。但是,如果您使用的是SecurityManager,并且当前的安全上下文不允许设置默认值,则TimeZone.setDefault()方法将改为设置线程本地值(因此任何其他代码)在同一个线程上运行会将此值视为默认值,但jvm的其余部分将不受影响)。我不认为有一种方法可以为您的“应用程序”设置默认值,除非您可以将应用程序缩小到特定的线程集合(极不可能)。

答案 1 :(得分:3)

使用java选项-Duser.timezone=GMT启动您的应用服务器吗?