为了账号安全,请及时绑定邮箱和手机立即绑定

更新到 tzdata2019b 失败 - tzupdater 版本 2.2.0-b01

更新到 tzdata2019b 失败 - tzupdater 版本 2.2.0-b01

慕码人8056858 2023-03-09 13:57:05
我正在尝试使用 Oracle 的 tzupdater 工具来更新时区数据。我看到一个堆栈溢出答案(Error updating tzdata 2018f (Released 2018-18) with tzupdater-2.2.0)说问题已在 2018 版本的时区数据中修复,但它现在正在尝试安装 2019 版本和仍然失败。# java -jar tzupdater.jar -v -lUsing https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz as source for tzdata bundle.java.home: /usr/java/jre1.8.0_102java.vendor: Oracle Corporationjava.version: 1.8.0_102tzupdater version 2.2.0-b01JRE tzdata version: tzdata2016dDownloaded file to /tmp/tz.tmp_3/tzdata.tar.gztzupdater tool would update with tzdata version: tzdata2019bCompiling TZDB version 2019bParsing file: /tmp/tz.tmp_3/africaParsing file: /tmp/tz.tmp_3/antarcticaParsing file: /tmp/tz.tmp_3/asiaFailed: java.lang.Exception: Failed while parsing file '/tmp/tz.tmp_3/asia' on line 1865 'Rule  Japan   1948    1951    -   Sep Sat>=8  25:00   0   S'java.lang.Exception: Failed while parsing file '/tmp/tz.tmp_3/asia' on line 1865 'Rule  Japan   1948    1951    -   Sep Sat>=825:00 0   S'    at tools.tzdb.TzdbZoneRulesCompiler.parseFile(TzdbZoneRulesCompiler.java:377)    at tools.tzdb.TzdbZoneRulesCompiler.compile(TzdbZoneRulesCompiler.java:191)    at tools.tzdb.TzdbZoneRulesCompiler.<init>(TzdbZoneRulesCompiler.java:307)    at com.sun.tools.tzupdater.ExternalModule.compileToJSRBinary(ExternalModule.java:153)    at com.sun.tools.tzupdater.TimezoneUpdater.run(TimezoneUpdater.java:230)    at com.sun.tools.tzupdater.TimezoneUpdater.main(TimezoneUpdater.java:634)Caused by: tools.tzdb.DateTimeException: Invalid value for SecondOfDay value: 90000    at tools.tzdb.ChronoField.checkValidValue(ChronoField.java:173)    at tools.tzdb.LocalTime.ofSecondOfDay(LocalTime.java:210)    at tools.tzdb.TzdbZoneRulesCompiler.parseMonthDayTime(TzdbZoneRulesCompiler.java:475)    at tools.tzdb.TzdbZoneRulesCompiler.parseRuleLine(TzdbZoneRulesCompiler.java:399)    at tools.tzdb.TzdbZoneRulesCompiler.parseFile(TzdbZoneRulesCompiler.java:354)    ... 5 more这个问题真的解决了吗?或者还有其他解决方法吗?谢谢。
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

目前,TZUpdater 工具仅与“后卫”数据格式兼容,不再具有预构建的二进制文件。IANA 从未发布过它们,但 Paul Eggert(TZ 维护者)之前在他自己的个人网站上发布过它们。他决定不再这样做了。( TZDB 邮件列表中有一个关于此的长线程。)

幸运的是,您可以通过以下过程自行构建它们:

  • tzdb-2019b.tar.lz 从 IANA下载完整的分发文件。

  • 在 POSIX 系统上(此处假定为 Ubuntu Linux):

    • sudo apt install lzip (如果你还没有)

    • lzip -d tzdb-2019b.tar.lz

    • tar xvf tzdb-2019b.tar

    • cd tzdb-2019b

    • make rearguard_tarballs

生成的tzdata2019b-rearguard.tar.gz文件与 TZUpdater 兼容:

java -jar tzupdater.jar -v -l tzdata2019b-rearguard.tar.gz

希望这最终会通过更新版本的 TZUpdater 得到解决,该版本无需后卫数据即可理解发布格式。


查看完整回答
反对 回复 2023-03-09
?
POPMUISE

TA贡献1765条经验 获得超5个赞

我想评论一下,Matt 的解决方案也可以在 Windows 上使用 Cygwin,只需确保安装软件包lzipmake因为默认情况下不会选择它们。

只有这个我没有在 Windows 上工作是使用本地文件。 java -jar tzupdater.jar -v -l tzdata2019b-rearguard.tar.gz 并且java -jar tzupdater.jar -v -l file://tzdata2019b-rearguard.tar.gz不适合我,所以我复制到内部服务器然后能够使用更新 java -jar tzupdater.jar -v -l http://some-iis-server/tzdata2019b-rearguard.tar.gz


查看完整回答
反对 回复 2023-03-09
  • 2 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信