我的应用程序使用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 /中的Eirunepe二进制文件吗?我已经尝试更新它并且它可以工作,但我不确定它是否会导致任何其他问题。这样做是否安全?
这里的任何帮助都会非常值得注意。
答案 0 :(得分:0)
是的,只更换文件是安全的,因为zi-file-format的内部版本没有改变。整个zi格式自Java早期以来一直没有改变。如果您仔细研究SUN / Oracle-classes ZoneInfo
和ZoneInfoFile
的源代码,那么您将看到该版本仍为1.
但请注意,所有这些文件都已经使用Java 8 ,因此只要您被迫使用Java 6,这只是一个临时解决方案。另请参阅此JDK-8007572-ticket。
是的,对于Java 7,你应该使用tzupdater-tool。