我已将 Linux 系统日期更改为 Sat Jun 30 23:50:00 2012。 更改日期后,我正在运行一个简单的 java 程序来记录系统日期。 问题是:Java 比 Linux 系统时间提前 25 秒记录日志。 例如: Java 日志:2012-07-01 00:02:15 INFO Scheduler:19 - Sun Jul 01 00:02:15 GMT 2012 Linux时间:Sun Jul 1 00:01:50 GMT 2012 两者都是 GMT!
我这样做是为了分析闰秒问题。 我在/etc/localtime 中检查了闰秒的总数,它是 25。 zdump -v/etc/本地时间| grep 59:60 | wc -l 25
我重新启动了系统,也重新启动了 ntp 服务器,但仍然有 25 秒的差异!
我使用的是 SUSE Linux Enterprise Server 11 SP3 (x86_64) 和 JAVA 1.7
请帮我看看哪里出了问题?以及如何解决这个问题?
最佳答案
您需要更新 JRE 中的时区数据:
- 从 http://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html 下载 Oracle
tzupdater
- Note 2015a 更新包括对
新闰秒 2015-06-30 23:59:60 UTC 根据 IERS Bulletin C 49 的修复
- 运行它:
java -jar tzupdater.jar
关于Java 时间领先于 Linux 时间(闰秒),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29254366/