New submission from CM:

On Windows (tested on XP), the datetime module (and, as reported online in [1], 
time module) apparently gets the timezone only when a Python instance first 
starts, but then never updates the timezone during the life of that Python 
instance.  So, if the user changes the system time zone while an application is 
running, datetime still uses the time zone that the Python instance started 
with, and so it is incorrect.

Example, Python 2.7.3:

First, the system time zone is set to Eastern U.S. and the system time shows 
14:27.

>>> import datetime
>>> print datetime.datetime.now()
2013-04-03 14:27:43.124000

This is correct, and matches the system clock.

Now user changes time zone on Windows to GMT (and doesn't change the time).  
Clock now shows the time as 18:29.

>>> print datetime.datetime.now()
2013-04-03 14:29:02.875000
            ^
This is incorrect and doesn't match the time shown on the system clock.

Note:  if the user changes the system clock time and NOT the time zone, then 
datetime updates the time fine.  

This has been discussed in a Stack Overflow question, with a proposed 
workaround[1], but it doesn't fix the fact that this makes datetime incorrect 
for those that have processes that ought to continue across time zone changes 
as the user moves.

[1]See accepted answer in particular here:  
http://stackoverflow.com/questions/4360981/make-python-respond-to-windows-timezone-changes

----------
components: Library (Lib)
messages: 185943
nosy: cm
priority: normal
severity: normal
status: open
title: Datetime and time doesn't update timezone in a running Win app
type: behavior
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue17627>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to