W.J*_*ack 0 python time datetime clock real-time-clock
在python中,通过导入datetime模块并使用各种函数,class datetime.datetime我们可以获得格式化的基本日期,甚至可以使用日期算法进行部署.
例如,datetime.datetime.now()将返回今天的日期.
但是,今天当我运行这个程序时,我的计算机中没有互联网连接,但仍然输出今天的日期.
那么,怎么datetime.datetime.now()可以返回正确的日期?算法是否在24小时后自动递增?
tl; dr datetime.datetime.now()使用计算机内置的时钟.
计算机能够比互联网存在更长的时间保持相当准确的时间.
例如,PC具有所谓的实时时钟(RTC).它由电池供电,即使在电脑关闭时也能保持时间.
有趣的是,一些分布式算法需要非常精确的时钟才能可靠地运行.所需的精度远远超过基于振荡器的简单时钟所能提供的精度.
因此,像谷歌这样的公司在他们的数据中心运行GPS和原子钟(甚至那些并非没有潜在的问题,例如,2017年1月26日,当一些GPS时钟在10微秒内出现13微秒时就证明了这一点. ).
即使数据中心连接到互联网,GPS和原子钟都不需要互联网连接来运行.此外,有人需要保持所有互联网时间基础设施的运行...不能让每个人都"脱离互联网".;)
现在我们的主题是在计算机网络之间分配时间,这样做的主要协议是NTP(网络时间协议)和PTP(精确时间协议).