首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >utc时间在ubuntu上的unix时间计算

utc时间在ubuntu上的unix时间计算
EN

Stack Overflow用户
提问于 2019-11-16 01:29:22
回答 1查看 145关注 0票数 1

我在我的机器上使用的是ubuntu 18.04。我的ntp被配置为使用gpsd作为源。gpsd提供的时间不考虑闰秒,但NTP对其进行调整,并向UTC提供调整后的闰秒。所以我的系统时钟将由NTP同步到UTC。从文档中,std::chrono::system_clock::now提供了1970年以来的时间,不计算闰秒。我的问题是,当我们这样做的时候,内核会调整闰秒吗?或者,从std::chrono::system_clock::now查询的时间实际上包含来自NTP的相同时间,而NTP已经调整了闰秒。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-16 08:36:23

system_clock和NTP都以同样的方式“处理”闰秒。时间只是在插入闰秒时停止。这里我说的是时间标准,而不是任何特定的实现。

在闰秒插入期间,NTP的实现可能不会停止一秒钟。相反,它可能会将自己延迟几个小时,无论是在闰秒插入之前还是之后,这样所有延迟的总和都是1秒。这就是所谓的“闰秒涂片”。

所以你可以说system_clock和NTP都忽略了闰秒,如果在这些系统中有两个时点t0t1,如果t0引用了闰秒插入之前的时间,而t1引用了那个闰秒插入之后的时间,那么t1-t0表达式就会给出一个不计算插入的闰秒的结果。结果比实际显示的物理秒数少1。

GPS卫星“忽略”闰秒的方式与system_clock和NTP完全不同。全球定位系统的“时钟”不停地滴答滴答地跳过一秒钟,几乎完全无视它。然而,GPS周总是精确604,800秒(86,400 * 7),即使在世界协调时插入了闰秒。

因此,要将GPS周(和一周中的GPS时间)转换为UTC,必须知道自GPS时代(1980年1月的第一个星期日)以来所插入的闰秒的总数。我相信,当gpsd为您提供一个UTC时间点时,它会为您完成此转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58886706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档