Сбой обновления tzdata2019b - версия 2.2.0-b01 tzupdater

Я пытаюсь использовать инструмент Oracle tzupdater для обновления данных часового пояса. Я видел ответ (Ошибка обновления tzdata 2018f (Выпущено 2018-10-18) с помощью tzupdater-2.2.0), говорящая, что проблема была исправлена в версии данных часового пояса 2018 года, но теперь она пытается установить версию 2019 и все еще терпит неудачу.

# 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

Была ли эта проблема на самом деле исправлена? Или есть другой обходной путь? Благодарю.

+2
05 июл. '19 в 19:46
источник поделиться
2 ответа

В настоящее время инструмент TZUpdater совместим только с форматом данных "арьергарда", который больше не имеет встроенных двоичных файлов. IANA никогда не публиковала их, но Пол Эггерт (сопровождающий 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, которая понимает формат выпуска, не требуя задних данных.

+3
08 июл. '19 в 19:33
источник

Я хотел бы прокомментировать, что решение Matt также работает с использованием Cygwin в Windows, просто убедитесь, что установили пакеты lzip и make как они не выбраны по умолчанию.

Только это я не получил работать на 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

0
13 июл. '19 в 7:48
источник

Посмотрите другие вопросы по меткам или Задайте вопрос