0

我们有 4 台服务器在生产中,它们的所有时间都使用 NTP(网络时间协议)服务器进行同步,所有这些服务器都在新西兰,作为 Daylight 的一部分,服务器被提前到 1 小时,即 +1200 到 + 1300,但似乎所有使用 JVM 的应用程序都达到了 +1200。

所以我写了一段代码来显示时间,并且确认 JVM 没有采取夏令时。有关此行为的任何建议或解释。之间我不想建议重新启动服务器作为其生产框。

我们使用的是 ibmJDK 而不是 Oracle JDK。

4

1 回答 1

1

您所指的特定夏令时规则最近是否发生了变化,还是已经存在多年?

Java 使用自己的内部时区数据库,而不是系统的。

检查服务器上的 java 时区数据库是否是最新的。如果没有,那么您可能需要考虑更新 JDK - 特别是如果您运行的是旧版本。

您可以在此处找到更多详细信息:https ://www.oracle.com/technetwork/java/javase/timezones-137583.html

该表还可以帮助您找到特定版本的时区数据库(但我不确定 IBM JDK 的特定内容):https://www.oracle.com/technetwork/java/javase/tzdata-versions-138805。 html

于 2020-02-25T08:02:48.983 回答