it-swarm-pt.tech

Altere datetime para Unix timestamp em Python

Por favor, ajude-me a alterar o objeto datetime (por exemplo: 2011-12-17 11:31:00-05:00) (incluindo fuso horário) para carimbo de data/hora do Unix (como a função time.time () em Python).

22
Thelinh Truong

Outra maneira é:

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

O registro de data e hora é o registro de data e hora unix que mostra a mesma data com o objeto de data e hora d.

14
Shnkc
import time

import datetime

dtime = datetime.datetime.now()

ans_time = time.mktime(dtime.timetuple())
12
user2673780

Resposta incompleta (não lida com fusos horários), mas espero que seja útil:

time.mktime(datetime_object.timetuple())

** Editado com base no seguinte comentário **

No meu programa, o usuário insere datetime, selecione fuso horário. ... Criei uma lista de fuso horário (use pytz.all_timezones) e permita ao usuário escolher um fuso horário nessa lista.

O módulo Pytz fornece as conversões necessárias. Por exemplo. se dt é o seu objeto datetime e o usuário selecionou '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())

O argumento is_dst=True é resolver horários ambíguos durante os intervalos de 1 hora no final do horário de verão (consulte aqui http://pytz.sourceforge.net/#problems-with-localtime ).

6
DS.