在下面编辑答案摘要:
我试图更多地了解 java.time.Instant 和闰秒。如果我运行这个:
System.out.println(Instant.ofEpochSecond(60*60*24*365*50));
我预计会创建一个接近 2020 年初的时间/日期,即 1970 年 1 月 1 日之后 365 天的 50 批,因此允许有一堆闰年,短短几天。我确实得到了这样的约会。到目前为止,一切都很好。
我得到的日期/时间显示为2019-12-20T00:00:00Z
. 令我惊讶的是,由于闰秒,我认为结果也会比午夜晚几秒钟。但这正是世界标准时间的午夜。
我误解了闰秒,还是 java.time.Instant (或者完全是别的东西!)?
编辑:正如评论者所指出的,Java 时间不需要对闰秒做任何事情,可能是因为 Unix 时间忽略了它们,其原因在 Wikipedia 文章中以及通过另一个问题间接指出。症结似乎是未来的闰秒是不可预测的,但当天文学家同意地球已经减慢到足以保证它的速度时,它就会被添加。而且这种放缓似乎是不可预测的。
请注意,我没有删除我的问题,因为其他人提到的问题中没有提到 Unix 时间和 java 时间之间的关联,所以我相信这增加了一些小的优点。
感谢您的输入!