如何更新OpenJDK的时区信息?

Mon*_*Ben 10 java timezone openjdk

如何更新OpenJDK的时区信息?Oracle推出了tzupdater,但这受到了许可证的约束,因此我不想使用它.我正在寻找一个开源替代方案,这将允许我只更新时区信息而不是整个JRE.

Ser*_*nev 9

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
Run Code Online (Sandbox Code Playgroud)

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


这是什么意思?

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

  • 很棒的信息.但我建议替换"locale"这个词.我理解你的意思,但它可能与[`Locale`](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html)相混淆,它们*没有*做时区,完全正交,但由于本地化日期时间值的文本"字符串"表示,所以涉及日期时间工作.将时区和语言环境混淆是学习日期工作的程序员之间混淆的常见原因.我建议用"特定地区"之类的东西替换"对于那个特定国家的地区". (2认同)