Python fornece diferentes pacotes (datetime
, time
, calendar
) como pode ser visto aqui a fim de lidar com o tempo. Cometi um grande erro ao utilizar o seguinte para obter a hora GMT actual time.mktime(datetime.datetime.utcnow().timetuple())
Qual é uma forma simples de obter a hora GMT actual no Unix timestamp?
Eu usaria o time.time() para obter um carimbo de tempo em segundos desde a época.
import time
time.time()
Produção:
1369550494.884832
Para a implementação padrão do CPython na maioria das plataformas, isto irá devolver um valor UTC.
Será que isto ajuda?
from datetime import datetime
import calendar
d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime
Como converter o objecto Python UTC datetime para UNIX timestamp
Eu gosto deste método:
import datetime, time
dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)
Os outros métodos aqui afixados ou não têm a garantia de lhe dar UTC em todas as plataformas ou apenas relatam segundos inteiros. Se quiser uma resolução completa, isto funciona, ao micro-segundo.