发布信息

世界标准时间是怎么来的?这是为什么呢?

作者:软荐小编      2024-03-05 14:11:41     170

这个方案很棒,终于解决了不定秒的问题。

那么有了这个国际原子时,是否可以直接取代之前提到的基于天文现象的“世界时”呢?

答案是不。 这个问题比想象的要复杂得多。 为什么是这样?

世界时从哪里来?

现在,科学家们制定了两套时间标准:

世界时:基于天文现象+时钟计时,始终与地球自转时间匹配国际原子时:基于原子钟计时,每一秒的周期完全相等且固定

北京时间在线校准软件_校准时间北京时间_北京校准时间显示

假设我们使用国际原子时作为时间标准,会发生什么?

因为原子时间非常稳定,但是世界时间会随着地球自转减慢而变得越来越慢,就会出现这种现象:

你能想象晚上八点阳光明媚的时候吗?

这太颠覆我们对生活的认知了……

基于天文计算的世界时间已经指导了我们人类的生活数千年。 人类早已习惯了这个时间标准。 直接用原子时间代替肯定是不可接受的。

但我们也需要原子时这样高度稳定的计时标准来开展科学研究。 如果两者发生冲突我们该怎么办?

科学家们重新开始思考,最终想出了一个相互兼容的解决方案。

由于两套时间标准都很重要,因此都应该保留,并且不会相互取代。

我们可以建立一个“新的时间标准”。 这组时间以“原子时间”为基础,开始计时。 过去的每一秒都会稳定而准确。

同时,为了考虑到基于天文测量的世界时间,人类将“不断观察”世界时间与这个新时钟之间的差异。

如果我们发现两者相差太大,我们就会“人为”调整时钟(增加一秒或减去一秒),使两者相差不超过0.9秒。

例如,这个时钟本身的运行速度比世界时间快。 一段时间后,如果你发现两者的差别越来越大,那么就给这个时钟“加一秒”,这样时钟就会在23:59:59走得更快。 秒变为23时59分60秒,这样与世界时的时差控制在0.9秒以内。 这个操作过程相当于让较快的时钟“等待”较慢的世界时。

这额外的一秒被科学家定义为“闰秒”。

校准时间北京时间_北京时间在线校准软件_北京校准时间显示

是不是很有趣? 听说过闰年,没想到还有闰秒!

当然,当地球自转速度变快时,也有可能这里减去一秒,即从23:59:58直接跳到00:00:00。 但这种情况比较少见。 大多数情况下,地球自转速度越来越慢。

这样做的好处是,时钟每秒依然准确,而且还考虑到了日常生活中使用的世界时间,一石二鸟!

由于这个时钟是根据原子时+世界时“协调”的,所以科学家将其定义为协调世界时(UTC)。

校准时间北京时间_北京时间在线校准软件_北京校准时间显示

你看见了吗? 我们开发时经常看到的UTC原来是这样的!

有了这一研究成果,有技术能力的国家已经开始制造自己的原子钟,然后计算协调世界时。

同时,为了进一步减少原子钟的测量误差北京时间在线校准软件,各国每月都会统一向权威机构报告其计算出的通用协调时间。 然后这个权威机构会根据各国实验室的准确度进行加权计算,计算出“最终协调世界时”。

之后,最终的时间被分发到各个国家,并要求每个国家“校准手表”,以确保世界各地的时间误差在100纳秒之内。

至此,科学家制定的时间标准就是我们今天仍在使用的“标准时间”!

值得一提的是,中国也是计算UTC的合作国家。 这个实验室就是“中国科学院国家授时中心”。 它位于中国陕西省渭南市蒲城县,持续保持中国标准时间。

校准时间北京时间_北京时间在线校准软件_北京校准时间显示

国家授时中心为何设立在陕西省? 由于陕西省地理位置位于中国中部,因此从该地点向各地播出时间时,到全国各地区的距离相对均匀。

之后中国将在自己计算的UTC基础上加上8个小时(中国在东八区),最终时间为“北京时间”!

没错,就是我们经常在新闻联播中听到的,北京时间。

是不是很有趣? 北京时间不是在北京产生的,而是在陕西省产生的,并参与了世界时间的制定和校准。

至此,新的世界标准时间确立了。 这套时间标准于1972年正式制定,至今仍在使用。

有了标准时间,接下来的问题是,这个标准时间如何同步到我们的电脑、手机、电子设备上呢?

这就是我下面要讲的“时机”。

计算机如何同步时间?

现在我们知道世界标准时间和北京时间是怎么来的,但北京时间是在陕西省创建的。 需要到这里来校准时间吗?

显然不需要。

位于陕西省的中国科学院国家授时中心在生成北京时间后,将通过一系列方式播发本次时间。 这个过程称为“授时”。

具体怎么做呢?

国家授时中心提供无线电波、互联网、电话等多种授时方式,可以广播时间。

北京校准时间显示_校准时间北京时间_北京时间在线校准软件

一般来说,无线电波传播速度较快,传播误差较小,因此授时中心会采用这种方式向全国各地的“时间服务器”发送时间。

时间服务器获得准确的时间后,通过其他方式(如网络)广播给下一级的最终用户。

经过这样的研究,我们现在可以解释一下文章开头的问题了。

时间服务器最初是通过国家授时中心同步时间,然后向其他终端提供时间同步服务。

那么我们的计算机如何跟上它的步伐呢?

你可能认为最简单的方式就是客户端向服务器“请求”标准时间和服务器响应时间数据,客户端可以修改自己的“本地时间”。

但事情并不像你想象的那么简单。

由于数据在网络传输过程中也需要时间,这个时间也会影响时间的准确性。

对此该怎么办?

于是人们想出了一个解决办法。 计算机在进行时间校准时,还需要计算网络延迟,最终“修正”同步时间,以减少误差。

现在,已经有一个软件可以完成这一切。 如果了解一些运维相关工作的话,就会知道,在我们部署应用的服务器上,会启动一个“自动校准”时间服务。 这个服务就是NTP(网络时间协议),它可以保证每台机器的时间与时间服务器同步。

那么NTP是如何同步服务器时间的呢?

这里涉及到2个关键点:

如何与NTP同步时间? 同步时间时,会对运行的程序有影响吗?

我们先看第一个问题:NTP是如何同步时间的?

简单来说,它通过给网络数据包添加“时间戳”来修正本地时间,然后计算网络延迟。

北京时间在线校准软件_校准时间北京时间_北京校准时间显示

根据该图,可以计算出网络“传输延迟”以及客户端与服务器之间的“时间差”:

该计算过程假设网络上的往返路径是对称的并且具有相同的延迟。

这样,客户端就可以“校准”自己的本地时间,并与服务器保持同步。 这个时间误差在WAN下为10ms - 500ms,在LAN下通常可以小于1ms。

我们看第二个问题:同步时间的时候,会对正在运行的程序有什么影响吗?

比如我们经常写的程序代码是这样的:

t1 = time.now()
// 时间发生校准
t2 = time.now()
// t2比t1小怎么办?
elapsed = t2 - t1

t2的时间真的比t1的时间小吗?

这里涉及到两个概念:挂钟和单调时钟。 它们之间有什么区别?

一般来说,我们编写的代码,像上面程序调用的“时间API”,通常都是从挂钟中获取时间。 因此,如果校准了时间,就有可能出现“时间倒转”的情况。

这必然会对程序产生很大的影响。 如何解决这个问题呢?

幸运的是,NTP提供了两种校准时间的方法:

ntpdate:一切以服务器时间为基础,“强行修改”本地时间 ntpd:用“润物细无声”的方式修改本地时间,将时差平均分配到每一个小调整上

也就是说,当ntpd收到需要“回拨”的时间时北京时间在线校准软件,它会让本地时间运行“慢一些”,小步调整,逐渐与服务器的时钟“对齐”。 这样,当地时间就保持不变了。 它是增量的,以避免“回流”。

我们在配置ntp服务的时候,需要特别注意这种情况。 另外,在编写程序时,还应该注意调用时间API来获取哪个时间,以避免业务逻辑出现异常。

至此,我们已经从看似简单的时间问题一步步走到了时间的定义,再到时间如何同步到计算机和终端设备上。 这个怎么样? 是不是解答了你的很多疑惑呢?

总结

好吧,我们总结一下。

我们在这篇文章中讨论了很多概念,在这里我们再次回顾一下。

1、人类早期,通过观察“天文现象”来测量时间。 根据地球自转规律,定义了一套时间标准:“世界时”。

2、后来人们发现,由于地球轨道是椭圆形,而且地球自转还受到地球内部的影响,自转速度越来越慢,人们发现世界时测量的时间“不准确” ”。

3、科学家开始从“微观世界”寻找更稳定的周期运动,最终确定以“铯原子”的振动频率为基准,制造“原子钟”,建立“世界原子时”,并重新定义了“秒”的长度和持续时间,高度准确。

4、然而,由于人类社会活动已经高度依赖“世界时”,科学家最终在“原子时”和“世界时”的基础上建立了新的时间标准:“世界协调时间”,将其定义为全球时间标准至此,世界标准时间诞生了。

5、中国在“协调世界时”基础上加上8小时时差制定“北京时间”,并在全国范围内广播使用。

6、“国家授时中心”向全国“时间服务器”广播北京时间。 我们生活中使用的时间,比如电脑,都是通过时间服务器自动同步和校准的。

7、计算机通过NTP与时间服务器完成“自动校准”。 基于此,我们的应用程序可以获得准确的时间。

8、NTP服务应以平稳、静默的方式同步时间,避免时间“倒流”。

后记

这篇文章是我写过的最难的一篇,因为它包含了大量的科普知识,范围远远超出了我的想象。

在写这篇文章的时候,我至少看了30多条信息。 很多时候,因为一个小细节,挖掘出了更多相关领域的知识,搞得我头晕目眩。

例如,如何测量铯原子的振动频率? 为什么可以测量得这么准确呢? 为什么不同国家的原子钟不同? 计算机如何处理闰秒? 时区从哪里来? 什么是本初子午线? ...

我实际上并没有讨论很多细节。 我尽量避免晦涩的物理知识,只保留重要的理论概念。 希望你能明白其中的原理。 如果有些细节你不明白,你可以尝试多读几遍,也可以和我进一步交流。

同时,在查阅数据的过程中,我真切地感叹人类研究成果的伟大,可以将时间误差降低到数亿年的精度。 我的钦佩之情无法用言语表达。

当我们写代码的时候,看似调用的是一个简单的时间API,但我们有没有想过,其背后是人类多年来智慧的结晶。 希望这篇文章能够解答您关于时间的所有疑问。

相关内容 查看全部