如何使用Python获得准确的UTC时间?

2024-04-28 15:01:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个桌面应用程序,并使用datetime.datetime.utcnow()进行时间戳,但是我最近注意到,一些使用该应用程序的人得到的结果与我同时运行该程序时得到的结果大不相同。有没有办法在本地获取UTC时间,而不使用urllib从网站获取它?


Tags: 程序应用程序datetime网站时间urllib桌面utc
2条回答

Python依赖于底层操作系统来提供准确的一天中的时间时钟。如果它不这样做,除了绕过o/s之外,您没有太多的选择。有一个NTP客户机here的纯Python实现。一个非常简单的方法:

>>> import ntplib,datetime
>>> x = ntplib.NTPClient()
>>> datetime.datetime.utcfromtimestamp(x.request('europe.pool.ntp.org').tx_time)
datetime.datetime(2009, 10, 21, 7, 1, 54, 716657)

然而,如果不断地攻击其他NTP服务器,那就不太好了。一个好的网络公民将使用ntp客户机库来跟踪o/s系统时钟与从服务器获得的时钟之间的偏移量,并且只定期轮询以调整时间。

实际上,ntplib计算这个抵消,以解释往返延迟。 它可以通过NTP响应的“offset”属性获得。因此,结果不应该太疯狂。

相关问题 更多 >