一尘不染

java时区setDefault效果

tomcat

以下如何使用JPA和Hibernate在UTC时区中存储日期/时间和时间戳我想将应用程序默认时区设置为UTC。我的应用程序与其他一些应用程序一起在Linux服务器上的tomcat上运行。该服务器还有其他运行更多应用程序的tomcat实例。

Timezone.setDefault(tz)是否会影响同一tomcat实例上的其他应用程序?

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

是否可以仅为应用设置时区?我大概记得一些有关安全管理器设置的内容。


阅读 296

收藏
2020-06-16

共1个答案

一尘不染

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

2020-06-16