我正在创建应用程序,我想知道我应该/可以如何处理闰秒。我将尝试用一个(希望如此)简单的示例情况来描述这个问题。在这种简单的情况下,您可以很容易地争辩说,每 +- 1.5 年的额外等待时间可能无关紧要,但我仍然会睡得更好,因为知道它在“所有”情况下都能正常工作/我想要的方式:)
情况
(我们不考虑任何延迟,因此当用户按下按钮时,它会立即“发生”)
您有一个游戏,您可以在其中创建士兵。
- 每个士兵需要 110 秒来创建。
- 用户按下按钮在
day 1 - 23:58:30
- 然后,用户期望
110s
稍后创建士兵。通过正常的“日期时间计算”,您的应用程序最终会得到day 2 - 00:00:20
。
day 1
现在和day 2
-->之间恰好有一个闰秒23:59:60
。按照这种方法,用户实际上会等待111s
他的士兵。
我更喜欢使用 Unix 时间戳。这样,您只需添加110s
到当前时间(以秒为单位)。但据我所知,这也没有考虑闰秒。你最终还是会111s
在实际时间等待。
问题
我应该怎么做才能确保用户或程序只等待它应该等待的时间?
是否有一个常用的时间戳确实考虑了闰秒?
我是否应该始终检查是否发生了闰秒? (可能会造成很多cpu功耗的“腰”?)
编辑:我主要在 Javascript (Node.js) 中工作,但 C、php 或 Python 中的示例也可以正常工作!