时间的来龙去脉 & GMT、UTC、CST、时间戳、NTP

时间的来龙去脉:从天文到微观世界

时间,是一个引发科学家、物理学家,甚至哲学家长期关注的抽象概念。从宇宙的大爆炸到时空相对论,再到黑洞和量子力学,时间的奥秘在科学探索中一直扮演着关键角色。

时间的起源:观察太阳

时间最早是通过观察太阳的运动而来的。地球的自转导致了日出日落的循环,人类习惯性地将这一周期定义为一天。地球的公转则构成了一年的长度。因此,时间最初是通过对天文现象的观察而确定的。

随后,为了更准确地定义时间,人们将一天划分为24小时,每小时划分为60分钟,每分钟划分为60秒。这样,时间的基本单位——秒便被定义了。

因此,我们得到了秒与天之间的关系:1秒 = 1 / 86400天。

然而,随着科学的进步,人们发现地球的公转轨道并非完全正圆,导致每天的时间不再等长。这就带来了问题。

解决误差的尝试:新的时间测量

为了减小这些误差,人们采取了一种新的方法。通过对一年内所有天的时长进行平均,得到相对固定的「天」,再计算出「相对平均」的秒,这样就减小了误差。

时间的定义基于对天文规律的深刻理解,并且人们开始用钟表来表示时间。从摆钟到机械钟,再到现代的石英钟,时间的制造工艺不断提高,现代石英钟每天的计时误差只有千分之一秒。

然而,随着科技的飞速发展,人们对太阳的观测变得越来越精准,暴露出了一个问题。

地球自转的挑战:微观世界的启示

科学家们发现地球自转速度并不是匀速的,而受到多种自然现象的影响,逐渐减缓。这导致了每年平均一天的时间不再一致。这可能对我们的日常生活产生轻微影响,但在需要高精度计时的领域,如航天和科研,这就成为一个问题。

于是,科学家将目光投向微观世界,试图在原子层面找到更稳定的计时基准。在这个微观的领域中,科学家发现了铯原子,其内部电子振荡周期非常短且高度稳定。

原子钟的诞生:秒的新定义

通过测量铯原子内部电子振荡的次数,科学家重新定义了秒,确立了一套新的时间标准。在1967年,国际度量衡大会决定以铯原子跃迁9192631770次为1秒。这种基于原子钟的计时方式更为准确,每秒都是绝对等长的。

然而,这引发了一个新的问题。原子钟计时的秒在地球自转的影响下,与天文测量的时间存在差异。为了解决这一矛盾,科学家们提出了一个协调的解决方案。

协调世界时(UTC):时空的统一

协调世界时综合了基于天文现象和原子钟的计时方式。国家授时中心会定期根据各国实验室的报告,调整协调世界时,以确保全球时间的一致性。在这个系统中,引入了「闰秒」的概念,以保持与地球自转的同步。

在这里插入图片描述

这套时间标准,即UTC,成为全球通用的时间系统。

几个时间概念

  1. UTC时间(Coordinated Universal Time)
    • 定义:UTC是世界标准时间,是基于原子钟的国际时间标准。它与地球自转无关,是通过多个原子钟的平均值来确定的。
    • 特点:UTC时间是稳定、精确的,不受地球自转变化的影响。
    • 表示方式:通常采用“HH:mm:ss”格式表示,其中HH表示小时,mm表示分钟,ss表示秒。
  2. GMT时间(Greenwich Mean Time)
    • 定义:GMT是格林尼治平均时间,是过去使用的世界时标准。虽然UTC已经取代了GMT成为国际标准,但人们仍然经常将UTC和GMT视为相同的时间。
    • 特点:GMT的概念源自格林尼治天文台的标准时间,以格林尼治时间为基准,表示地球上其他地方的时间。
    • 表示方式:与UTC类似,通常采用“HH:mm:ss”格式表示。
  3. CST时间(China Standard Time,北京时间)
    • 定义:CST是指中国标准时间,也称为北京时间。北京时间采用UTC+8的时区,即比UTC时间快8小时。
    • 特点:CST是中国的官方时间,广泛用于中国境内。
    • 表示方式:采用“HH:mm:ss”格式表示,与UTC时间相比,小时部分相差8小时。
  4. 时间戳
    • 定义:时间戳是指自1970年1月1日00:00:00 UTC(格林尼治时间)以来的秒数或毫秒数。Unix时间戳通常是指以秒为单位的计数,而Java等一些编程语言使用的时间戳可能是以毫秒为单位的计数。
    • 特点:时间戳是一种表示时间的简便方式,方便计算时间间隔和比较时间。
    • 表示方式:时间戳是一个整数,表示自指定时刻以来经过的秒数或毫秒数。

小结

  • UTC时间和GMT时间常被用来表示全球协调的时间标准,UTC是现代标准,而GMT则有时被用作它的同义词。
  • CST时间是中国的官方时间,是UTC+8的时区,比UTC时间快8小时。
  • 时间戳是一种纪录时间的方式,表示从1970年1月1日00:00:00 UTC以来的秒数或毫秒数(32位有限制,64位理论无限)。

时间不准的原因是?

钟表和电脑内部都使用晶体振荡器来测量时间,但由于制造和环境原因,振荡器的稳定性不是完美的。这些微小的误差随着时间的推移逐渐累积,导致设备显示的时间越来越不准确。

如何校准时间?

在我们的电脑、手机和其他电子设备上,我们总能轻松地看到准确的时间。这得益于一个神奇的过程——时间同步。

连接到互联网的设备通常会自动同步「网络时间」,让我们先来揭开这个「网络时间」的神秘面纱。

每台设备背后都有一个时间服务器,它是一台精密的计算机,拥有高度准确的时钟。这个时钟常常连接到国际标准的时间源,如全球定位系统(GPS)或原子钟。

尽管时间服务器是精密的,但也并非百分之百完美。硬件故障、网络延迟等因素都可能对它们的时间产生微小的影响。

设备通过网络传输数据包与时间服务器通信,获取服务器上的准确时间信息。然而,由于网络传输的延迟,这个同步过程可能导致一些微小的误差。

为了弥补这些误差,设备会实现自动校准机制。它们会定期与时间服务器同步,并根据同步数据智能地调整本地时钟,以保持相对准确。

计算机如何同步时间?

我们了解了世界标准时间和北京时间的产生过程,但北京时间的生成并不需要我们亲自前往陕西省的中国科学院国家授时中心,因为这个时间会通过多种方式广播出去,这个过程称为「授时」。

国家授时中心使用多种方式,例如 无线电波、网络、电话 ,将准确的北京时间发送到全国各地的「时间服务器」。

然后,时间服务器会通过不同的方式(如网络)将时间广播到终端用户的计算机上。

接下来,我们将详细了解计算机如何同步时间,主要通过网络时间协议(NTP)来实现。

NTP同步时间机制:

NTP采用一种巧妙的机制,通过在网络报文上打「时间戳」的方式,计算网络延迟,最终修正本机的时间。这确保了即使在网络传输过程中产生的延迟也能被纳入计算,从而降低误差。

在这里插入图片描述

通过计算网络延时和客户端与服务端的时间差,可以得出:

  • 网络延时 = (t4 - t1) - (t3 - t2)
  • 时间差 = t2 - t1 - 网络延时 / 2 = ((t2 - t1) + (t3 - t4)) / 2

这种计算方式假设网络路径是对称的,并且时延相同。这样,客户端可以校准自己的本机时间,与服务端保持同步。

NTP的影响:

对于正在运行的程序,NTP同步时间过程的设计也考虑到了影响最小化。通常,计算机上部署的NTP服务会通过两种方式:

  1. ntpdate: 强制修改本机时间为服务端时间。
  2. ntpd: 通过小步调整的方式,将时间差均摊到每次小的调整上,避免「时光倒流」。

ntpd在接收到需要「回拨」的时间时,会让本机时间走得「慢」一点,通过小步调整逐渐与服务端的时钟「对齐」,保持本机时间递增,避免发生「倒流」。

这种机制对于程序的影响降到最小,确保业务逻辑不会受到异常的影响。

在配置NTP服务时,需要注意选择合适的方式。在编写程序时,也要留意调用的时间API,以确保业务逻辑正常运行。

总结:

  1. 时间的起源: 通过观察太阳的运动,人类最初定义了时间的循环,将一天划分为24小时,小时划分为60分钟,分钟划分为60秒,确立了时间的基本单位——秒。
  2. 解决误差的尝试: 为了减小地球自转不均匀带来的误差,科学家采取了平均天文观测时长的方式,以得到相对固定的「天」,再计算出相对平均的秒。
  3. 原子钟的诞生: 面对地球自转的不均匀性,科学家将目光投向微观世界,发现了铯原子的高度稳定振荡周期,基于这一发现重新定义了秒,创造了原子钟。
  4. 协调世界时(UTC): UTC综合了基于天文现象和原子钟的计时方式,引入「闰秒」以保持与地球自转的同步,成为全球通用的时间系统。
  5. 时间的准确性问题: 钟表和电脑内部的晶体振荡器稳定性不完美,导致时间的微小误差逐渐累积。科学家采用网络时间同步机制,通过时间服务器和NTP协议保持设备时间的准确性。
  6. 计算机时间同步机制: NTP采用时间戳和网络延迟计算方式,通过ntpdate和ntpd两种方式实现时间的同步。ntpd采用小步调整,避免「时光倒流」,确保对正在运行的程序影响最小。
  7. 时间概念总结: UTC是世界标准时间,GMT是过去的标准,CST是中国标准时间,时间戳是以秒或毫秒计的时间表示方式。

参考文章

计算机时间到底是怎么来的?程序员必看的时间知识!

https://baijiahao.baidu.com/s?id=1704726811030042384&wfr=spider&for=pc

5分钟搞懂计算机的各种时间(GMT、UTC、CST)

https://baijiahao.baidu.com/s?id=1732139602203523267&wfr=spider&for=pc

【网络干货】NTP时间同步技术详解 - 网络工程师笔记的文章 - 知乎
https://zhuanlan.zhihu.com/p/138339057

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小庄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值