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