classification
Title: Value of time.timezone is sometimes wrong
Type: behavior Stage: resolved
Components: Extension Modules Versions: Python 3.4
process
Status: closed Resolution: duplicate
Dependencies: Superseder: incorrect time.timezone value
View: 22752
Assigned To: Nosy List: mitya57, r.david.murray
Priority: normal Keywords:

Created on 2014-11-24 10:49 by mitya57, last changed 2014-11-24 14:41 by r.david.murray. This issue is now closed.

Messages (2)
msg231597 - (view) Author: Dmitry Shachnev (mitya57) * Date: 2014-11-24 10:49
Here, on Linux, I get:

$ python3 -c "import time; print(time.timezone)"
-14400

… which means I am in UTC+4. However, Russia recently (in October) switched time, and moved from UTC+4 to UTC+3 timezone (my tzdata is up-to-date), so this reported value is wrong.

The relevant code in timemodule.c looks like (simplified):

  #define YEAR ((time_t)((365 * 24 + 6) * 3600))
  time_t t = (time((time_t *)0) / YEAR) * YEAR;
  struct tm *p = localtime(&t);
  janzone = -p->tm_gmtoff;
  PyModule_AddIntConstant(m, "timezone", janzone);

The value of t is the *January 1st* of current year, i.e. 2014-01-01 currently. But the timezone of a country in the year beginning may be different from its timezone in the year end, which is the case for me.

This bug will be relevant for Russia until the end of 2014, but may be still relevant for other countries that wish to change their timezone.
msg231602 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-11-24 14:41
This is a duplicate of issue 22752.
History
Date User Action Args
2014-11-24 14:41:11r.david.murraysetstatus: open -> closed

superseder: incorrect time.timezone value

nosy: + r.david.murray
messages: + msg231602
resolution: duplicate
stage: resolved
2014-11-24 10:49:19mitya57create