Image

Image_winnie wrote in Imageru_python

time zone

Хочу разобраться как работают с таймзонами в python.

Команда date "+%Y-%m-%d_%H-%M-%S_%z" выводит правильное локальное время и правильную таймзону:
2012-12-05_19-57-37_+0400

Если использовать
python -c 'import datetime, time ; date_time = datetime.datetime.now() ; print date_time.strftime("%Y-%m-%d_%H-%M-%S_%z")'
то печатается пустая строка вместо %z.
2012-12-05_15-59-58_

Как портируемым образом отформатировать объект datetime как локальное время с таймзоной? Или придётся отказаться от datetime в пользу модуля time?
В time тоже не всё впорядке - time.strftime('%Y-%m-%d_%H-%M-%S_%z', time.localtime()) пишет время в GMT, не местное, и почему-то вместо числового смещения - название зоны: '2012-12-05_16-04-23_Eur'

У меня голова кругом, кажется в области работы с timezone питон не питон :/

upd: наверное проще всего взять таймзону из time.timezone или вычислить как t = time(); int(mktime(localtime(t)) - mktime(gmtime(t)))