java时区setDefault效果

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

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

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

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

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

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