How can I get an accurate UTC time with Python?
Question: 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?


Answer: 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](http://pypi.python.org/pypi/ntplib/). 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.

