python获取当前utc时间_如何使用Python获得准确的UTC时间?

I wrote a desktop application and was using datetime.datetime.utcnow() for timestamping, however I've recently noticed that some people using the application get wildly different results than I do when we run the program at the same time. Is there any way to get the UTC time locally without using urllib to fetch it from a website?

解决方案

Python depends on the underlying operating system to provide an accurate time-of-day clock. If it isn't doing that, you don't have much choice other than to bypass the o/s. There's a pure-Python implementation of an NTP client here. A very simple-minded approach:

>>> 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)

However, it would not be very nice to be continually hitting on other NTP servers out there. A good net citizen would use the ntp client library to keep track of the offset between the o/s system clock and that obtained from the server and only periodically poll to adjust the time.


版权声明:本文为weixin_39724469原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。