更新到 tzdata2019b 失败 - tzupdater 版本 2.2.0-b01 [英] Update to tzdata2019b is failing - tzupdater version 2.2.0-b01
问题描述
我正在尝试使用 Oracle 的 tzupdater 工具来更新时区数据.我看到了一个堆栈溢出答案(使用 tzupdater-2.2.0 更新 tzdata 2018f(2018-10-18 发布)时出错)说该问题已在 2018 年版本的时区数据中得到解决,但它现在正在尝试安装 2019 年版本,但仍然失败.
I'm trying to use Oracle's tzupdater tool for updating timezone data. I saw a stack overflow answer (Error updating tzdata 2018f (Released 2018-10-18) with tzupdater-2.2.0) saying the problem was fixed in a 2018 version of the timezone data, but it's now trying to install a 2019 version and is still failing.
# java -jar tzupdater.jar -v -l
Using https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz as source for tzdata bundle.
java.home: /usr/java/jre1.8.0_102
java.vendor: Oracle Corporation
java.version: 1.8.0_102
tzupdater version 2.2.0-b01
JRE tzdata version: tzdata2016d
Downloaded file to /tmp/tz.tmp_3/tzdata.tar.gz
tzupdater tool would update with tzdata version: tzdata2019b
Compiling TZDB version 2019b
Parsing file: /tmp/tz.tmp_3/africa
Parsing file: /tmp/tz.tmp_3/antarctica
Parsing file: /tmp/tz.tmp_3/asia
Failed: 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
这个问题真的解决了吗?或者还有其他解决方法吗?谢谢.
Was this problem actually fixed? Or is there another workaround? Thanks.
推荐答案
目前,TZUpdater 工具只兼容rearguard"数据格式,不再有预构建的二进制文件.IANA 从未发布过它们,但 Paul Eggert(TZ 维护者)之前曾在他自己的个人网站上发布过它们.他已经决定不再这样做了.(TZDB 邮件列表中有一个很长的主题.)
Currently, the TZUpdater tool is only compatible with the "rearguard" data format, which no longer has pre-built binaries. IANA has never published them, but Paul Eggert (the TZ maintainer) was previously publishing them on his own personal site. He has decided not to do that any more. (There's a long thread in the TZDB mailing list about this.)
幸运的是,您可以通过以下过程自己构建它们:
Fortunately, you can build them yourself through the following procedure:
- 从 IANA 下载完整的分发文件
tzdb-2019b.tar.lz
. - 在 POSIX 系统上(此处假设为 Ubuntu Linux):
sudo apt install lzip
(如果你还没有的话)lzip -d tzdb-2019b.tar.lz
tar xvf tzdb-2019b.tar
cd tzdb-2019b
制作rearguard_tarballs
- Download the complete distribution file
tzdb-2019b.tar.lz
from IANA. - On a POSIX system (Ubuntu Linux assumed here):
sudo apt install lzip
(if you don't have it already)lzip -d tzdb-2019b.tar.lz
tar xvf tzdb-2019b.tar
cd tzdb-2019b
make rearguard_tarballs
生成的
tzdata2019b-rearguard.tar.gz
文件与 TZUpdater 兼容:The resulting
tzdata2019b-rearguard.tar.gz
file is compatible with TZUpdater:java -jar tzupdater.jar -v -l tzdata2019b-rearguard.tar.gz
希望这最终能通过更新版本的 TZUpdater 得到解决,该版本了解发布格式而无需后卫数据.
Hopefully this will eventually get resolved with an updated version of TZUpdater that understands the release format without requiring rearguard data.
这篇关于更新到 tzdata2019b 失败 - tzupdater 版本 2.2.0-b01的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!