Time zone changing while Win app is running

Terry Jan Reedy tjreedy at udel.edu
Wed Apr 3 17:41:43 EDT 2013


On 4/3/2013 2:46 PM, CM wrote:
> On Apr 3, 7:37 am, Steven D'Aprano <steve
> +comp.lang.pyt... at pearwood.info> wrote:
>> On Tue, 02 Apr 2013 17:04:12 -0700, CM wrote:
>>> To summarize the issue:  In an application, I have been using Python's
>>> datetime module to get the current time.  But it seems that, at least
>>> with Windows (XP), whatever time zone your computer is set to when you
>>> start the application, that's what datetime will use--the time zone will
>>> *not* be updated in the application when you update it manually with
>>> Windows.  So, if you change the time zone (say, after traveling with
>>> your laptop), all datetimes will be incorrect as compared to your system
>>> clock.
>>
>> I am not the maintainer of the datetime module, but based purely on what
>> you have said, I would consider that a bug.

I don't. Do you really want every time function slowed by 
re-initializing the timezone?

>> I suggest you report it as an issue on the Python bug tracker.

I do believe that time.tzget can now be make to work now on Windows, and 
that would be a proper tracker issue.
>
> Thanks, I submitted an issue about it.  On 2.7.3, on Windows, it's
> easy to demonstrate:
>
> (Actual time = 2:40pm; tz = Eastern U.S.)
>
>> import datetime
>> print datetime.datetime.now()
> 2013-04-03 14:40:03.124000     <---- RIGHT
>
> (Now change time zone to UTC, for example.  Now clock reads 6:41pm.)

>> import datetime

Without a restart, this is a no=op.

>> print datetime.datetime.now()
> 2013-04-03 14:41:13.124000     <---- WRONG

As I said on the issue, passing a tz arg to now() will give the answer 
for any timezone on earth. A user-friendly app displaying times should 
let users choose.

--
Terry Jan Reedy





More information about the Python-list mailing list