Пожалуйста, помогите мне изменить объект datetime (например: 2011-12-17 11:31:00-05:00
) (включая часовой пояс) на отметку времени Unix (например, function time.time() в Python).
Изменение даты и времени на отметку времени Unix в Python
Ответ 1
Другой способ:
import calendar
from datetime import datetime
d = datetime.utcnow()
timestamp=calendar.timegm(d.utctimetuple())
Timestamp - это временная метка unix, которая показывает ту же дату с d-объектом d.
Ответ 2
import time
import datetime
dtime = datetime.datetime.now()
ans_time = time.mktime(dtime.timetuple())
Ответ 3
Неполный ответ (не касается часовых поясов), но, надеюсь, полезно:
time.mktime(datetime_object.timetuple())
** Отредактировано на основе следующего комментария **
В моей программе пользователь вводит дату и время, выбирает часовой пояс.... Я создал список часовых поясов (используйте pytz.all_timezones) и разрешаю пользователю выбирать один часовой пояс из этого списка.
Модуль Pytz предоставляет необходимые преобразования. Например. если dt
- ваш объект datetime
, а пользователь выбрал 'US/Eastern'
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).