Java-查找使用中的tzdata版本,而不考虑JRE版本

我们有一个简单的实用程序应用程序,可读取JRE中使用的所有时区数据并将其全部显示在简单表中。我们需要为即将发布的产品发行版使用JRE的较旧版本(6_24)(显然是由于其他问题),但是我们还需要在该发行版中包括较新的时区更新(否则将包含在6_29中)

)。我们已经打包了将要安装的私有JRE,所以使用TZUpdater工具将时区更新到该私有JRE 中不是问题-

问题是正在读取/验证哪个tzdata版本(例如tzdata2010o,tzdata2011k)与实用程序应用程序一起读取(即,正在运行该应用程序的JRE中使用哪个版本)。该应用程序当前显示

JRE版本 在标题栏中,但是随着时区的更新,这已经不足以确定正在使用哪个 时区数据 版本。

我研究了TimeZone类,但似乎未提供此信息-

也许有一个系统属性可以保存此信息?TZUpdater工具知道正在使用哪个版本,因此它必须在某处可用-

我无法想象他们会分析性地确定更新工具中正在使用哪个版本…有人知道在哪里可以找到此信息吗?

回答:

在我的一个JRE中,有一个JRE_PATH\lib\zi名为的文件ZoneInfoMappings。在第一行中,它将显示您要查找的数据。

我将寻找一种不那么骇人听闻的方法,如果我发现了一些东西,将会更新答案。

更新:似乎没有API来获取此数据。但是,该类sun.util.calendar.ZoneInfoFile中的代码显示了如何解析它。

以上是 Java-查找使用中的tzdata版本,而不考虑JRE版本 的全部内容, 来源链接: utcz.com/qa/415299.html

回到顶部