有一些参考文献提到 Java 忽略闰秒:
考虑到新引入的闰秒,1 年前的 (java) lib 如何正确执行 UTC 时间格式 https://stackoverflow.com/questions/21782785/how-can-a-1-year-old-java-lib-correctly-perform-an-utc-time-formatting-consid
Java系统毫秒是否考虑了闰秒? https://stackoverflow.com/questions/16022346/do-java-system-milliseconds-take-account-of-leap-seconds
JDK-4272347:(cal/tz)支持闰秒票 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4272347
然而文件JRE 软件中的时区数据版本 http://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html提到:
根据 IERS 公告 C 49,新闰秒 2015-06-30 23:59:60 UTC。
第 3 方 Java 库 Time4J 使用它自己的闰秒列表。
如果Java忽略了闰秒,为什么java的tzupdater工具会添加闰秒?
我现在仔细查看了 TZUPDATER 和 IANA 的发行说明(在其实验位置 github/eggert/tz):
TZUPDATER 说:
以美洲/坎昆为代表的墨西哥金塔纳罗奥州将
从启用夏令时的中部时间转换为不启用夏令时的东部时间
2015 年 2 月 1 日 02:00。智利四月份不会改变时钟
此后;新的标准时间将是旧的夏令时
时间。这会影响美洲/圣地亚哥、太平洋/复活节和
南极洲/帕尔默。新闰秒 2015-06-30 23:59:60 UTC 根据
IERS 公告 C 49。
互联网号码分配机构 (IANA) 说:
发布 2015a - 2015-01-29 22:35:20 -0800
Changes affecting future time stamps
The Mexican state of Quintana Roo, represented by America/Cancun,
will shift from Central Time with DST to Eastern Time without DST
on 2015-02-01 at 02:00. (Thanks to Steffen Thorsen and Gwillim Law.)
Chile will not change clocks in April or thereafter; its new standard time
will be its old daylight saving time. This affects America/Santiago,
Pacific/Easter, and Antarctica/Palmer. (Thanks to Juan Correa.)
New leap second 2015-06-30 23:59:60 UTC as per IERS Bulletin C 49.
(Thanks to Tim Parenti.)
由此看来,Oracle 员工很可能刚刚完成了如果内容确实与 Java 发行版相关,则无需考虑内容即可复制粘贴。唯一的变化是删除了作者引用。当然,事实仍然是,在实际的 OpenJDK 和 Oracle Java 发行版中,没有代码或位置可以加载此类闰秒数据。
在我自己的回答中SO-问题 https://stackoverflow.com/questions/14065355/are-leap-seconds-catered-for-by-calendar我还指出了最新的相关邮件声明 https://github.com/threeten/threeten/issues/197Threeten 项目领导者最终放弃了对闰秒的临时可用计划支持。所以你对 Java-8 的乐观是没有道理的。
顺便说一句,最新版本的 Time4J v2.3 现在可以部署 IANA-TZDB 中包含的闰秒信息,正如您对 TZUPDATER 工具所期望的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)