331 votos

python: Conversión de fecha y hora a millis desde época (tiempo Unix)

Tengo un Python datetime objeto que quiero convertir en cuando unix, o segundos / milisegundos desde el 1970 época.

¿Cómo puedo hacer esto?

450voto

Ben Alpert Puntos 30381

Me parece que la forma más sencilla de hacerlo es

 import datetime

def unix_time(dt):
    epoch = datetime.datetime.utcfromtimestamp(0)
    delta = dt - epoch
    return delta.total_seconds()

def unix_time_millis(dt):
    return unix_time(dt) * 1000.0
 

95voto

miku Puntos 63392
>>> import datetime
>>> # replace datetime.datetime.now() with your datetime object
>>> int(datetime.datetime.now().strftime("%s")) * 1000 
1312908481000

O la ayuda del módulo de tiempo (y sin fecha de formato):

>>> import datetime, time
>>> # replace datetime.datetime.now() with your datetime object
>>> time.mktime(datetime.datetime.now().timetuple()) * 1000
1312908681000.0

Respondió con la ayuda de: http://pleac.sourceforge.net/pleac_python/datesandtimes.html

Documentación:

15voto

working4coins Puntos 406

Puede utilizar Delorean para viajar en el espacio y el tiempo!

 import datetime
import delorean
dt = datetime.datetime.utcnow()
delorean.Delorean(dt, timezone="UTC").epoch()
 

http://delorean.readthedocs.org/en/latest/quickstart.html

13voto

estani Puntos 1167

Así es como yo lo hago:

 from datetime import datetime
from time import mktime

dt = datetime.now()
sec_since_epoch = mktime(dt.timetuple()) + dt.microsecond/1000000.0

millis_since_epoch = sec_since_epoch * 1000
 

1voto

MattoTodd Puntos 2849
import time
seconds_since_epoch = time.mktime(your_datetime.timetuple()) * 1000

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X