'tz'时区数据库在物理上存储在Oracle JVM for Java 8中的哪个位置?

Bas*_*que 2 java timezone

对于适用于Mac OS X(以及Linux和Windows)的Java 8Oracle实现,物理存储在JDK/JRE中的tz时区数据库在哪里?

我想找到实际的文件进行检查.

我已经将JVM放在带有El Capitan的Mac上/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk.但我仔细阅读其内容并没有透露任何我能识别的"tz"文件.

Ell*_*sch 6

在Java 8中,tz文件是

jre/lib/tzdb.dat
Run Code Online (Sandbox Code Playgroud)

另请参阅时区更新工具.其中部分说

对于JDK 8及更高版本的系列版本:

  • 'tzdb.dat'在修改后的JAVAHOME/jre/lib目录下找到该文件.这是较新的数据文件.
  • 找到'tzdb.dat.<oldtzdataversion>'; 文件位于同一个JAVAHOME/jre/lib目录中.这是替换的旧数据文件.
  • 从命令中获取当前安装的时区数据版本java -jar tzupdater.jar -V.
  • 将当前'tzdb.dat'文件重命名为类似'tzdb.dat.<newtzdataversion>',或者在步骤3中命令给出的任何版本.确保此名称与旧数据文件不冲突.
  • 将旧数据文件重命名为'tzdb.dat'.
  • 通过执行验证当前活动时区数据的更改java -jar tzupdater.jar -V.
  • 根据需要在此JDK/JRE实例上重新启动应用程序.

  • 为了完整,[这是Oracle JDK中的代码](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/sun/util/calendar/ZoneInfoFile.java #251)读取此文件. (3认同)