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