Изменить дату и время на метку времени Unix в Python - PullRequest
22 голосов
/ 17 декабря 2011

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

Ответы [ 3 ]

14 голосов
/ 17 августа 2012

Другой способ:

import calendar
from datetime import datetime
d = datetime.utcnow()
timestamp=calendar.timegm(d.utctimetuple())

Метка времени - это метка времени Unix, которая показывает ту же дату с объектом datetime d.

12 голосов
/ 12 августа 2013
import time

import datetime

dtime = datetime.datetime.now()

ans_time = time.mktime(dtime.timetuple())
6 голосов
/ 17 декабря 2011

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

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).

...