Если вам нужно использовать версию 2018f, но не часовой пояс Азии, вы можете использовать его с 2018e и другие файлы с 2018f.
Я создал файл tzdata2018f-01.tar.gz в моем репозитории https://github.com/lucasbasquerotto/my-projects/tree/master/tz для тех, кто хочет избежать внесения этих изменений вручную.
Есть пример использования ziupdater при создании образа докера с OpenJDK,но если вы используете Oracle JDK, вы сможете использовать почти тот же код, чтобы использовать tzupdater, изменяющий
java -jar /app/tmp/ziupdater-1.0.1.2.jar -l file:///app/tmp/tzdata2018f-01.tar.gz
на
java -jar /app/tmp/tzupdater.jar -l file:///app/tmp/tzdata2018f-01.tar.gz
или даже
java -jar tzupdater.jar -l https://github.com/lucasbasquerotto/my-projects/raw/master/tz/tzdata2018f-01.tar.gz
если вы не хотите загружать его вручную.
В примере из моего репозитория он генерирует образ Docker, но вы можете использовать его без докера, с установкой Java непосредственно в вашей ОС.
Я выполнил последний пример выше на своей локальной машине (которая использует Oracle JDK), и часовой пояс был успешно исправлен:
public static void main(String[] args) {
System.out.println("Date: " + new Date()); // prints correctly now
}
Просто убедитесь, что вы не используете стороннюю библиотеку (например, Joda)Время), который использует часовой поясжестко закодированный в своем собственном банке (или сгенерировать банку из источника с обновленными данными часового пояса, как в https://www.joda.org/joda-time/tz_update.html).