tl;dr datetime.datetime.now()
使用计算机内置的时钟。
计算机能够保持相当准确的时间,这比互联网存在的时间要长得多。
例如,个人电脑配备了所谓的实时时钟(RTC)。它是由电池供电的,即使计算机关闭也可以保持时间。
有趣的是,一些分布式算法需要非常精确的时钟才能可靠地运行。所需的精度远远超过简单的振荡器时钟所能提供的任何精度。
因此,像 Google 这样的公司在其数据中心中使用GPS和原子钟(即使这些钟表也不是没有潜在问题,例如在2017年1月26日,某些 GPS 时钟在十小时内误差达到了13微秒)。
即使数据中心连接到互联网,GPS 和原子钟也不需要互联网连接即可运行。此外,有人需要维护所有的互联网时间基础设施... 毕竟不能让每个人都从互联网上获取时间。 ;)
现在我们谈到了将时间分配到计算机网络上,主要的协议是NTP(网络时间协议)和PTP(精密时间协议)。
datetime.datetime.now()
的文档没有说明时间是从互联网获取的。datetime
是从计算机时间接收的,例如,如果您正在运行Windows,请尝试更改窗口中的时间,Python将打印您更改的时间。