Как вручную обновить часовой пояс в JDK?
В OracleJDK обновления часовых поясов выполняются с помощью инструмента Oracle tzupdater. Я использую OpenJDK (двоичный файл zulu, предлагаемый Azul) и хочу обновить его часовой пояс до последнего часового пояса IANA. Что именно значит обновить часовой пояс? Как я могу сделать это вручную? Заранее спасибо.
1 ответ
Azul недавно опубликовал инструмент с открытым исходным кодом для обновления данных TZ: https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/
Он работает аналогично Oracle tzupdater, но имеет лицензию с открытым исходным кодом (лицензия GPLv2).
Использование: примените его к пакету данных IANA, используя Java, который вы хотите обновить:
$JAVA_HOME/bin/java -jar ziupdater.jar -l file://[path]/tzdata.tar.gz
С помощью этой команды вы будете применять изменения часового пояса к вашей установке Java.
Что это значит?
Рассмотрим следующую ситуацию: вы установили Java год назад, а затем правительство определенной страны изменило свои законы, например, отменило DST. Ваша инсталляция Java еще не знает об этом и может неправильно обрабатывать время для этого конкретного региона. Обновление данных о часовых поясах решает эту проблему.