2012-02-10 22 views
10

¿Es posible crear una marca de tiempo UNIX en Python (número de segundos) con solo día, mes y año desde un objeto de fecha? Básicamente, estoy buscando lo que la marca de tiempo sería a la medianoche (hora, minuto y segundo sería 0).Marca de tiempo Python del día, mes, año

Gracias!

Respuesta

32
>>> import time 
>>> import datetime 
>>> dt = datetime.datetime.strptime('2012-02-09', '%Y-%m-%d') 
>>> time.mktime(dt.timetuple()) 
1328774400.0 

--Ó--

>>> dt = datetime.datetime(year=2012, month=2, day=9) 
>>> time.mktime(dt.timetuple()) 
1328774400.0 

Para otros tipos de tiempo como horas y Segunda entra aquí: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

+0

NB, esto le dará la hora local, no la fecha y hora UTC – Willem

0

que podría hacerlo por conseguir el número de segundos entre el fecha y época (1 de enero de 1970):

from datetime import datetime 

epoch = datetime(1970, 1, 1) 
d = datetime(2012, 2, 10) 

print (d - epoch).total_seconds() 
2

También puede utilizar datetime.combine()

>>> import datetime 
>>> import time 
>>> date1 = datetime.date(year=2012,day=02,month=02) 
>>> date2 = datetime.datetime.combine(date1,datetime.time()) 
>>> date2 
datetime.datetime(2012, 2, 2, 0, 0) 
>>> tstamp = time.mktime(date2.timetuple()) 
>>> tstamp 
1328121000.0 

El resultado depende de la zona horaria local (en este caso IST). Espero que alguien pueda indicarme cómo obtener el resultado GMT

Cuestiones relacionadas