在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条答案
按热度按时间2vuwiymt1#
java中的默认时区设置有点古怪。默认情况下,如果您设置默认时区,它将影响整个JVM。但是,如果您使用SecurityManager运行,并且当前安全上下文不允许设置默认值,则TimeZone.setDefault()方法将改为设置 thread local 值(因此在同一线程上运行的任何其他代码都将此值视为默认值,但是JVM的其他部分将不受影响)。我不认为有一种方法可以只为您的“应用程序”设置默认值,除非您可以将您的应用程序缩小到特定的线程集合(几乎不可能)。
cnwbcb6i2#
使用java选项
-Duser.timezone=GMT
启动应用服务器是否可以做到这一点?