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

时间:2009-10-21 06:34:32

标签: python datetime timestamp utc

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

2 个答案:

答案 0 :(得分:22)

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系统时钟和从服务器获得的时间之间的偏移量,并且只定期轮询以调整时间。

答案 1 :(得分:7)

实际上,ntplib计算此往返延迟的偏移量。 它可以通过NTP响应的“偏移”属性获得。因此结果不应该非常疯狂。