在 Java 8 (jdk1.8.0_32) 中,不再有时区文件(在 jre/lib/zi 下),例如Java 7u67。
有谁知道,为什么他们不在那里?
还是需要下载不同的设置?我使用了 JDK 安装程序 (jdk-8u31-windows-i586 resp.x64.exe)。
最佳答案
更详细地说,从 1.8 版开始从 Java 版本中删除 lib/zi 目录的动机显然是为了减轻维护负担。 1.4 中引入的 lib/zi 目录和 1.8 中引入的新 tzdb.dat 文件在维护方面成本过高而无法继续。另请参阅来自 JSR-310-mailing archive 的邮件.
另一个原因是 JEP 151 中制定的动机其目标是减少 lib/zi-library 的内存占用和启动时间。这个目标最终通过放弃 lib/zi 库来支持更紧凑的新 tzdb.dat 文件来解决,该文件的大小约为 100 kByte。
还要记住,旧的 lib/zi 结构已经生成了直到 2037 年的偏移量转换。这种限制源于使用有限的整数类型,所以在不久的将来整个结构已经过时并且如果 Oracle 决定保留它,则需要进行一般重构。
关于java - 为什么 Java 8 u31 中不再有时区文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28879895/