如何在 JDK 中手动更新时区?

How to manually update timezone in JDK?

在 OracleJDK 中,时区更新是使用 Oracle 的 tzupdater 工具完成的。 我使用 OpenJDK(Azul 提供的 zulu 二进制文件),我想将其时区更新为最新的 IANA 时区。 更新时区到底是什么意思?我怎样才能手动完成?提前致谢。

Azul 最近发布了更新 TZ 数据的开源工具:https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/

它的工作原理类似于 Oracle tzupdater,但具有开源(GPLv2 许可证)许可证。

用法:将其应用于您要更新的 Java 的 IANA 数据包:

$JAVA_HOME/bin/java -jar ziupdater.jar -l file://[path]/tzdata.tar.gz

通过此命令,您可以将对时区的更改应用于 Java 安装。


什么意思?

考虑下一种情况:您在一年前安装了 Java,后来某个国家/地区的政府更改了他们的法律,例如取消夏令时。您的 Java 安装还不知道这一点,并且可能会错误地处理该特定区域的时间。更新时区数据解决了这个问题。