[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Java и timezone. Приложение пишет лог на 1 час меньше системного времени



Hello,

Andrey Rahmatullin wrote:
> On Tue, Dec 20, 2011 at 11:37:09PM +0400, Dmitry A. Zhiglov wrote:
>>> Насколько я понимаю ситуацию пакет tzdata-java используется только openjdk.
>>> Sun (Oracle) JDK не использует его. Для обновления данных о временных зонах
>>> в этих jdk необходимо скачать tzupdater с сайта Oracle
>>> (http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html)
>>> и запустить его от рута (sudo java -jar tzupdaer.jar). В общем это костыль,
>>> но более прямых методов не знаю.
>> Перепробовал разные прямые варианты.
>> Ваш метод самый правильный и верный, в настоящее время!
> Самый правильный и верный в настоящее время - снести сановскую жабу,
> потому что она обновляться не будет, в т.ч. по безопасности.
Не всё корректно работает с не-сановской, а есть ещё куча проприетарщины, которая вообще нормально работает только на jdk, поставляемом вместе с ней.
Я, чтобы не пользоваться сложнообновляемым апдейтером, ставлю tzdata-zava и потом линкую с ним нужные директории. Например, для стандартной сановской жабы это выглядит примерно так:
mv /usr/lib/jvm/java-6-sun/jre/lib/zi /usr/lib/jvm/java-6-sun/jre/lib/zi.old && ln -s /usr/share/javazi /usr/lib/jvm/java-6-sun/jre/lib/zi
Кстати, не надо забывать и о jdk со стороны клиента, там тоже норовят пихнуть свою копию со своим софтом. Иногда с поправленной tz на сервере и старой на клиенте выглядит смешно: зона пишется не MSD, а MSK, но время при этом всё равно на час сдвинуто. 

-- 
wbr,
 Roman Sokolov
 mailto:rps@cheater.ru


Reply to: