gpt4 book ai didi

Java - 无论 JRE 版本如何,查找正在使用的 tzdata 版本

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:04 28 4
gpt4 key购买 nike

我们有一个简单的实用程序应用程序,它读取 JRE 中使用的所有时区数据并将其全部显示在一个简单的表格中。我们需要为即将发布的产品版本使用旧版本的 JRE (6_24)(显然是由于其他问题),但我们还需要在该版本中包含较新的时区更新(否则将包含在 6_29 中) ).我们已经打包了一个将要安装的私有(private) JRE,因此使用 TZUpdater tool 将时区更新更新到该私有(private) JRE 中。不是问题 - 问题是读取/验证哪个版本的 tzdata (例如 tzdata2010o、tzdata2011k)正在使用实用程序读取(即运行该应用程序的 JRE 中使用的是哪个版本)。该应用目前在标题栏中显示 JRE 版本,但随着时区更新,这已不足以确定正在使用哪个时区数据版本。 p>

我调查了 TimeZone类,但它似乎没有提供此信息——也许有一个系统属性保存此信息? TZUpdater 工具知道正在使用哪个版本,因此它必须在某个地方可用 - 我无法想象他们会分析确定更新工具中使用的是哪个版本...有人知道在哪里可以找到此信息吗?

最佳答案

ZoneRulesProvider.getVersions

在 Java 8 中,您可以使用 ZoneRulesProvider.getVersions("UTC") :

The exact meaning and format of the version is provider specific. The version must follow lexicographical order, thus the returned map will be order from the oldest known rules to the newest available rules. The default 'TZDB' group uses version numbering consisting of the year followed by a letter, such as '2009e' or '2012f'.

例子:

System.out.println(
java.time.zone.ZoneRulesProvider
.getVersions("UTC")
.lastEntry()
.getKey()
);

在我的 Oracle Java 8u91 中,我得到:

2016a

查看此 code run live at IdeOne.com .

关于Java - 无论 JRE 版本如何,查找正在使用的 tzdata 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7956044/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com