在Java 8(jdk1.8.0_32)中,时区文件(在jre / lib / zi下)不再像以前那样存在。 Java 7u67。
有人知道,他们为什么不在那里?
或者是否需要下载其他设置?我使用了JDK设置(jdk-8u31-windows-i586和x64.exe)。
答案 0 :(得分:6)
进入更多细节,从版本1.8开始从Java版本中删除lib / zi目录的动机显然是为了减轻维护负担。 1.4中引入的lib / zi目录和1.8中引入的新tzdb.dat文件在维护方面要花费很多。另请参阅JSR-310-mailing archive发来的邮件。
另一个原因是在JEP 151中制定的动机,其目标是减少内存占用和lib / zi库的开始时间。这个目标最终通过删除lib / zi-library来支持更紧凑的新tzdb.dat文件,其大小约为100 kByte。
还要记住,旧的lib / zi结构已经产生了到2037年的偏移转换。这个限制起源于使用有限的整数类型,因此在未来不会到目前为止整个结构已经过时并且如果Oracle决定保留它,则需要进行一般的重构。
答案 1 :(得分:2)
Java 8引入了Date and Time API,这可能使这些文件过时了。