2012-02-10 15 views
10

È possibile creare un timestamp UNIX in Python (numero di secondi) con solo giorno, mese e anno da un oggetto data? Sto essenzialmente cercando quale sarebbe il timestamp a mezzanotte (ora, minuto e secondo sarebbe 0).Timestamp Python da giorno, mese, anno

Grazie!

risposta

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

--OPPURE--

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

Per altri tipi di tempo come ore e la seconda entra qui: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

+0

NB, questo vi darà il timestamp locale, non quello UTC – Willem

0

si potesse fare per ottenere il numero di secondi tra la data e epoca (1 gennaio 1970):

from datetime import datetime 

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

print (d - epoch).total_seconds() 
2

È inoltre possibile utilizzare 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 

Il risultato dipende dal fuso orario locale (in questo caso IST). Spero che qualcuno possa indicarmi come ottenere il risultato GMT

Problemi correlati