Java TZ:我可以从Java 7复制zi文件夹并将其粘贴到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 和 Java8http://www.oracle.com/technetwork/java/javase/downloads/index.html

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

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

这里的任何帮助都将是非常可观的。

是的,替换文件是安全的,因为内部版本的 zi-文件格式没有改变。整个 zi 格式自早期 Java 时代以来就没有改变过。如果你仔细研究 SUN/Oracle 类的源代码ZoneInfoZoneInfoFile那么你会看到版本仍然是 1。

但请注意,所有这些文件都与Java 8一起使用,因此只要您出于任何原因被迫使用Java 6,它只是您的临时解决方案。另请参阅此 JDK-8007572 票证。

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

最新更新