Можно ли получить часовой пояс в Python, учитывая метку времени UTC и смещение UTC? - PullRequest
3 голосов
/ 03 апреля 2009

У меня есть данные о смещении UTC и времени UTC. Учитывая это, возможно ли в Python получить локальный часовой пояс пользователя (в основном, для определения, является ли он летним временем и т. Д., Возможно, с использованием pytz), аналогично функции в PHP timezone_name_from_abbr?

Например:

Если мое время эпохи 1238720309, Я могу получить время UTC как:

>>> d = datetime.utcfromtimestamp(1238720309)
>>> print d + dt.timedelta(0,-28800) #offset for pacific I think
2009-04-02 17:04:41.712143 

Это правильно, за исключением того, что сейчас PDT, поэтому должно быть:

2009-04-02 18:04:41.712413

Мне нужно получить часовой пояс для использования в pytz, чтобы выяснить, если это летнее время, я думаю?

Ответы [ 3 ]

5 голосов
/ 03 апреля 2009

Поскольку в общем случае для данного смещения часового пояса существует более одного возможного часового пояса, общий ответ - «Нет, не без дополнительной информации». Обычно более подробная информация относится к месту, к которому относится время, - к какой стране, штату или городу.

1 голос
/ 03 апреля 2009

Нет. Часовые пояса слишком сложны, и их слишком много, что на Х часах от UTC.

http://en.wikipedia.org/wiki/List_of_time_zones

Например, -5 от UTC может быть Канада, Нью-Йорк, Куба, Ямайка, Эквадор и т. Д.

Экваториальные зоны, вероятно, не используют летнее время, поскольку их день длится около 12 часов в году. Южноамериканские, если они используют ту или иную форму ТЛЧ, вероятно, находятся на графике, противоположном североамериканскому, потому что их графики на лето / зиму (т.е. короткие дни / длинные дни) также противоположны.

0 голосов
/ 03 апреля 2009
...