Комментарии 21
Есть такая замечательная штука от Oracle: tzupdater.jar — www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html
Только с openjdk не работает :-(
Только с openjdk не работает :-(
+3
Чтобы использовать данный апдейтер нужно для каждой java в системе запустить
java -jar tzupdater.jar -u
0
Ага, и то же самое на Windows — помогает:
C:\jdk1.7.0_60\bin>.\java.exe -cp . -jar tzupdater.jar -u
0
Ещё у них есть rss www.oracle.com/ocom/groups/public/@otn/documents/webcontent/163246.xml, где сообщается о всех изменениях в tzupdater'е.
Чтобы не париться с переключением, проще всего указывать абсолютный путь к бинарнику java. Кроме того,
Чтобы не париться с переключением, проще всего указывать абсолютный путь к бинарнику java. Кроме того,
java -jar tzupdater.jar -V
расскажет какая версия tzdata зашита в текущем tzupdater, и какая установлена в той яве, через которую он запущен.+3
Он еще отдельно обновляется, поэтому лучше смотреть последнюю версию тут www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html
0
странно что в tzdata-java лежит 2014i, а на сайте оракла — только 2014h.
но не об этом хотел сказать. хочу напомнить, если кто-то имеет дело с joda-time — то там никакого автоматического апдейта зон не будет, потому что они «сами с усами». поэтому лучше библиотечку-то обновить в проектах, если этого ещё не произошло.
если используете spring webmvc, то считайте, что joda тоже используется.
но не об этом хотел сказать. хочу напомнить, если кто-то имеет дело с joda-time — то там никакого автоматического апдейта зон не будет, потому что они «сами с усами». поэтому лучше библиотечку-то обновить в проектах, если этого ещё не произошло.
если используете spring webmvc, то считайте, что joda тоже используется.
0
Если вдруг нет возможности обновить joda-time, то можно в classpath подкинуть jar-ку с руками собранной tzdata
see github.com/JodaOrg/joda-time/blob/master/src/main/java/org/joda/time/tz/ZoneInfoCompiler.java и кастомным ZoneInfoProvider
и подсунуть руками через system property -Dorg.joda.time.DateTimeZone.Provider=my.foo.CustomZoneInfoProvider
see github.com/JodaOrg/joda-time/blob/master/src/main/java/org/joda/time/tz/ZoneInfoCompiler.java и кастомным ZoneInfoProvider
и подсунуть руками через system property -Dorg.joda.time.DateTimeZone.Provider=my.foo.CustomZoneInfoProvider
0
Как подсказывают коллеги, которые прямо сейчас это правят, версия joda-time 2.5 уже содержит нужные фиксы.
0
Если вдруг нет возможности обновить joda-time
0
Да, извиняюсь, не туда reply пристроил. А нет ли у вас рецепта для joda-time без замены jar-ников? Это было бы веселее. А то jar-ники это такое дело, приезжают часто с пакетами — зависимостями и авто-обновляться любят.
0
Всё как написано выше.
Руками собрать свою jar-ку в которой будет свой кастомный ZoneInfoProvider и скомпилированная tzdata в ресурсах, положить куда-нибудь рядом с приложением, добавить её в classpath и добавить ключик JVM -Dorg.joda.time.DateTimeZone.Provider
Никто за вас вашу jarку автоматически не обновит.
Руками собрать свою jar-ку в которой будет свой кастомный ZoneInfoProvider и скомпилированная tzdata в ресурсах, положить куда-нибудь рядом с приложением, добавить её в classpath и добавить ключик JVM -Dorg.joda.time.DateTimeZone.Provider
Никто за вас вашу jarку автоматически не обновит.
0
Есть предположение что указанный метод не работает с openjdk, т.к. на сайте oracle tzdata собрана для обычного jdk. Для openjdk надо собирать вручную из исходников.
0
Как пишут в соседнем посте: habrahabr.ru/post/240915/, для Debian борьба с OpenJDK — это установка свежего пакета tzdata-java.
Проверил на своей Ubuntu — поставил OpenJDK7, всё работает (tzdata-java уже обновлён по рецепту статьи):
Проверил на своей Ubuntu — поставил OpenJDK7, всё работает (tzdata-java уже обновлён по рецепту статьи):
user@host:~$ java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.12.04.1)
OpenJDK Server VM (build 24.65-b04, mixed mode)
user@host:/home/user$ javac -version
javac 1.7.0_65
user@host:/home/user$ javac -cp . TestMSK.java
user@host:/home/user$
user@host:/home/user$ java -cp . TestMSK
OK
0
Под IBM есть такая штука как JTZU, делает в принципе тоже самое. Но сама сканирует весь диск и патчит
0
tzupdater под 7 и 8ую версии. Что делать с 1.5 и 1.6?
0
А для JRE тоже нужно выполнять описанную магию?
0
нужно еще помнить про tzmappings — файл соответствия часовых зон винды и явы. В частности — в 6й версии там нет описания зоны asia\magadan. У меня от этого много проблем было.
0
может кому пригодится, apple java на mac os x тоже можно этой утилитой обновить
решение нашел здесь lists.apple.com/archives/java-dev/2007/Jan/msg00060.html, только параметр с тех пор иначе выглядит java.vendor=«Oracle Corporation»
решение нашел здесь lists.apple.com/archives/java-dev/2007/Jan/msg00060.html, только параметр с тех пор иначе выглядит java.vendor=«Oracle Corporation»
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Перевод часов в России 26 октября и Java