正式而言,这取决于操作系统和实现- 至少对于而言Date
。来自的文档java.util.Date
:
尽管Date类旨在反映协调世界时(UTC),但它可能并非完全如此,具体取决于Java虚拟机的宿主环境。在所有情况下,几乎所有现代操作系统都假设1天= 24×60×60 = 86400秒。但是,在UTC中,大约每年一到两年一次,称为“ le秒”。always秒始终是一天的最后一秒,并且总是在12月31日或6月30日。例如,由于增加了leap秒,1995年的最后一分钟长61秒。大多数计算机时钟不够精确,无法反映the秒的区别。
我怀疑您会发现,尽管您的计算机时钟大致与UTC对齐,但这是通过NTP等方法来进行的,它会定期校正时钟,而不是操作系统 真正 实现了leap秒。
我相信JRE库通常 不 承担86400-第二天。它使生活 这么 简单得多,如果你要纠正不准确的系统时钟,无论如何,你可能会为闰秒以及正确的,太。
您真的很想弄清楚自己感兴趣的东西。如果您需要一种使用leap秒来表示日期和时间的方式,那么标准Java库可能对您而言效果不佳。据我所知,甚至JSR-310也不再支持leap秒(对于大多数开发人员来说,这是非常明智的决定)。