根据这个struct tm
文档,值tm_sec
可以是0 - 61
,在某些系统中,额外的范围是包括闰秒。如何检测系统中是否存在闰秒,特别是在我的openSUSE 13.2机器中?
发布于 2015-04-26 10:26:43
闰秒是,而不是与特定系统相关的。它甚至不是一个直接的信息问题,而是一个物理问题。
在一个理想的世界里,每一个时钟都是完全准确的,就没有理由跳几秒了。但在我们受限的世界里,时钟往往会偏离。
移动系统时间,特别是向后移动会导致糟糕的事情发生。如果批处理任务存储其上一次运行的时间,以了解哪些文件已被处理,并且由于时钟向后移动,它认为时间现在比最后一次运行时间早,那么它将再次处理可能完全错误的文件。
由于这个原因,系统开发人员发明了允许系统调整其系统时钟的闰秒(当然只有轻微的延迟,但如果您在一个固定的基础上检查您的时钟,通常就足够了),而不必将它向后移动。
正如@Supuhstar所指出的,这只是一个闰秒的操作系统实现。但是,闰秒有一个真实的物理起源,是为了补偿地球自转速度的两个定义--地球自转速度的物理变化。我在另一个我的职位中给出了它的更多细节
https://stackoverflow.com/questions/29876158
复制相似问题