Java TZ:我可以从 Java 7 复制 zi 文件夹并粘贴到 Java 6 吗?

Java TZ: Can I copy zi folder from Java 7 and paste it in Java 6?

我的应用程序使用 Oracle JDK 1.6.39,它具有根据时区转换时间的功能。

Java 1.6.39 认为 "America/Eirunepe" 和 "America/New_York" (EST) 之间有 1 小时的时差。但实际上这些时区之间没有时差。

为了解决这个问题,我发现我应该 运行 oracle 提供的时区更新工具(tzupdator 工具)。

有关 TZUpdater 工具的更多信息:http://www.oracle.com/technetwork/java/javase/dst-faq-138158.html

目前 TZUpdater 工具可用于 Java7 和 Java8 http://www.oracle.com/technetwork/java/javase/downloads/index.html

但是我的应用程序使用 Java 1.6.39,由于某些技术原因我无法更新 java。

我的问题是: 我可以从最新版本的 java 复制 $JAVA_HOME/jre/lib/zi/America/ 中的 Ei运行epe 二进制文件吗?我已经尝试更新它并且它有效,但我不确定它是否会导致任何其他问题。这样做安全吗?

如有任何帮助,我们将不胜感激。

是的,只替换文件是安全的,因为 zi-file-format 的内部版本没有改变。整个 zi 格式从很早的 Java 天开始就没有改变。如果你仔细研究SUN/Oracle-classesZoneInfoZoneInfoFile的源码你会发现版本还是1.

但是请注意,所有这些文件都随Java8一起消失了,所以这只是一个临时解决方案,只要你被迫出于任何原因使用 Java 6。另见 JDK-8007572-ticket.

是的,对于 Java 7,您应该使用 tzupdater-tool。