我有一个库,它需要知道自上一个epoch以来的秒数。这需要跨越闰秒的界限。让用户更容易使用的功能之一是用unix时间指定时间——当然,这不考虑闰秒。如果我知道闰秒何时已经(或将要)插入(或删除),这很容易处理。
除了保留一个硬编码的表(或类似的表)之外,有没有什么标准的方法可以获得闰秒事件的列表,当然这需要每隔几年更新一次?
以下是问题的两个部分答案:
-
因为闰秒从根本上来说是不可预测的——它们是由地球自转的不规则变化引起的,最终是由于行星上质量的分布——所以它们不会提前几个月定义。因此,如果你需要知道闰秒,你需要每六个月更新一次,即使更新是"今年1月/7月没有闰秒"。
-
如果您只需要上一个历元的秒数,则不必使用UTC。GPS时间本质上是UTC,没有闰秒(也就是说,当GPS设备向您显示民用时间时,它本质上是向您显示GPS时间加上闰秒计数)。因此,如果你能掌握GPS时间,你就可以排序了。你可以从全球定位系统接收器上得到。或者,虽然我不知道,但如果不能说服NTP服务器给你GPS时间,我会感到惊讶。