我已将Linux系统日期更改为2012年6月30日星期六23:50:00。更改日期后,我正在运行一个简单的java程序来记录系统日期。问题是:Java的日志记录时间比Linux系统提前了25秒。例如:Java日志:2012-07-01 00:02:15信息日程安排:19-7月1日星期日格林尼治标准时间2012Linux时间:2012年7月1日星期日格林尼治标准时间00:01:50两者都是GMT!
我这样做是为了分析闰秒问题。我查了一下/etc/localtime的闰秒总数是25。zdump-v/etc/localtime|grep 59:60|wc-l25
我重新启动了系统,也重新启动了ntp服务器,但仍然有25秒的差距!
我使用的是SUSE Linux Enterprise Server 11 SP3(x86_64)和JAVA 1.7
请帮我弄清楚怎么了?如何解决这个问题?
您需要在JRE中更新时区数据:
- 从下载Oracle
tzupdater
http://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html - 注2015更新包括对
New leap second 2015-06-30 23:59:60 UTC as per IERS Bulletin C 49
的修复 - 运行它:
java -jar tzupdater.jar