Изменение datetime в метку времени Unix в Python

Пожалуйста, помогите мне изменить объект datetime (например: 2011-12-17 11:31:00-05:00) (включая часовой пояс) на временную метку Unix (как функция time.time() в Python).

22
задан Jonathan Leffler 17 December 2011 в 05:40
поделиться

1 ответ

Неполный ответ (не касается часовых поясов), но, надеюсь, полезный:

time.mktime(datetime_object.timetuple())

** Отредактировано на основе следующего комментария **

В моей программе, Пользователь вводит дату и время, выбирает часовой пояс. ... Я создал список часовых поясов (используйте pytz.all_timezones) и позволил пользователю выбрать один часовой пояс из этого списка.

Модуль Pytz обеспечивает необходимые преобразования. Например. если dt является вашим datetime объектом, и пользователь выбрал «США / Восток»

import pytz, calendar
tz = pytz.timezone('US/Eastern')
utc_dt = tz.localize(dt, is_dst=True).astimezone(pytz.utc)
print calendar.timegm(utc_dt.timetuple())

Аргумент is_dst=True должен разрешать неоднозначные времена в течение 1-часовых интервалов в конце перехода на летнее время. (см. здесь http://pytz.sourceforge.net/#problems-with-localtime ).

6
ответ дан 29 November 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: