计算机时间到底是怎么来的?程序员必看的时间知识!
Python涨薪研究所
共 8098字,需浏览 17分钟
· 2021-07-15
![](https://filescdn.proginn.com/f05756911c25552faf5e513baa899bb0/3fd145ccd4630afc5e4bcc4c80af5ad2.webp)
为什么计算机的时间有时候「走不准」? 计算机究竟是怎么「自动校准」时间的? 我们经常看到的 UTC 时间,到底是什么? 我们在新闻上看到的「北京时间」,真的来自北京吗?
![](https://filescdn.proginn.com/b7f336fd3b59d2755461e470d521010e/075e786deb93c79dc823a44d29c9690c.webp)
时间为什么总是走“不准”?
如何校准时间?
时间是怎么来的?
一秒到底有多长?
![](https://filescdn.proginn.com/788b7e2fe120d34494faebdb8155fee2/6b578e4690be4f6a4dc2c8190409f3ad.webp)
注:这个测量原理和测量过程比较复杂,这里把这些物理细节简化了。不用太过纠结这个数值是怎么测量出来的,你只需要理解,这个微观原子内部的振荡周期是非常稳定的,它比之前根据天文现象测量出来的秒,要精确多得多。
科研技术还在发展,精密设备和测量能力也越来越高,最新的原子钟甚至可以达到 1 亿年不差 1 秒!
世界标准时间是怎么来的?
世界时:基于天文现象 + 钟表计时,永远与地球自转时间相匹配 国际原子时:基于原子钟计时,每一秒的周期完全等长且固定
![](https://filescdn.proginn.com/73538c49243b219b7a5d0127d7c48583/874142207ee1110214efd8d669d2ae9a.webp)
原子时走得快,世界时走得慢,时间越久,两者差距越来越大 日复一日,几百年后,世界时的正午 12 点是太阳高照的时刻,而原子时可能已经走到了下午 2 点了 几千年后,太阳高照的时刻,原子时可能已经走到了晚上 8 点!
![](https://filescdn.proginn.com/4004862149338c09dd0606b305e67965/49a58e519d88d88abe60ae4608d02319.webp)
当然,当地球自转速度变快时,这里也有可能是减一秒,即从 23:59:58 直接跳到 00:00:00。但这种情况比较少,大部分情况下,地球自转速度是越来越慢的。
![](https://filescdn.proginn.com/76d071f7df107b1df2bf9f2ac28532cb/64548c2a0e03eb193ddd6b431c7e99d1.webp)
看到了么?我们在开发时经常看到的 UTC,原来是这样来的!
![](https://filescdn.proginn.com/6869ddf45b1b55523d183042f2e93cfe/8dfb41d30becbc4210fcde8ff795f0f3.webp)
为什么国家授时中心会设立在陕西省?因为陕西省的地理位置处于中国的中部,从这个位置向各地广播时间时,对全国每个地区距离都是相对平均的。
是不是挺有意思?北京时间并不是在北京产生的,而是在陕西省,并与参与世界时间的制定和校准。
计算机如何同步时间?
![](https://filescdn.proginn.com/3434c07a191cf9eba18ef62160e543ca/9f95c5c5051c71bbe03f8e7adca76096.webp)
NTP 如何同步时间? 同步时间时,对正在运行的程序有没有影响?
![](https://filescdn.proginn.com/949f73df7b3950a863f8082e177a1840/e89ba4cb9a6bfa50d87bda03a44f7bb4.webp)
网络延时 = (t4 - t1) - (t3 - t2) 时间差 = t2 - t1 - 网络延时 / 2 = ((t2 - t1) + (t3 - t4)) / 2
这个计算过程假设网络来回路径是对称的,并且时延相同。
t1 = time.now()
// 时间发生校准
t2 = time.now()
// t2比t1小怎么办?
elapsed = t2 - t1
墙上时钟:通常就是指前面讲到的世界协调时 UTC,校准时间后,可能发生回拨 单调时钟:计算机自启动以后经历的纳秒数,不会回拨
ntpdate:一切以服务端时间为准,「强制修改」本机时间 ntpd:采用「润物细无声」的方式修改本机时间,把时间差均摊到每次小的调整上
总结
后记
![](https://filescdn.proginn.com/f83a75264a7859f90f4e741ec0afcb90/6ae18fd7d987562f9700347d1de4272e.webp)
好文推荐
![](https://filescdn.proginn.com/2a36181f68f71dc774e21b1bd69528d5/1247be9d4c8f4c0bfba82efafa9ab055.webp)
![](https://filescdn.proginn.com/5d24358783a1a2bea99f53a3abb18ed9/be626dcfba66dc9039db6674c1eeb34c.webp)
网传京东某程序员因压力太大,在商品页面置入骂人代码!京东辟谣:不关我们的事,外部商家干的!
![](https://filescdn.proginn.com/816ba1158d7d06e69e4c7c605f76d325/59891df1e091745a257b6170040b1bf9.webp)
某大厂程序员炫耀:来新加坡后,每天最多工作五六个小时,家庭年收入150万人民币,已躺平!
![](https://filescdn.proginn.com/1a805b4e0d298564ebff36c126512cad/c8ca6a84fb47b53529ef1d6529a32431.webp)
女学霸考692分想当“程序媛”,网友:快劝劝孩子
一键三连「分享」、「点赞」和「在看」
技术干货与你天天见~
评论