¿Cómo puedo obtener la hora actual en milisegundos en Python?
Para lo que necesitaba, esto es lo que hice, basado en el comentario anterior de @samplebias:
import time millis = int(round(time.time() * 1000)) print millis
Quick’n’easy. Gracias a todos, lo siento por el cerebro pedo.
Para su reutilización:
import time current_milli_time = lambda: int(round(time.time() * 1000))
Entonces:
>>> current_milli_time() 1378761833768
time.time()
solo puede dar una resolución al segundo, el enfoque preferido para los milisegundos es datetime
.
from datetime import datetime dt = datetime.now() dt.microsecond
def TimestampMillisec64(): return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000)
otra solución es la función que puede insertar en su propio utils.py
import time as time_ #make sure we don't override time def millis(): return int(round(time_.time() * 1000))
Si desea un método simple en su código que devuelva los milisegundos con datetime:
from datetime import datetime from datetime import timedelta start_time = datetime.now() # returns the elapsed milliseconds since the start of the program def millis(): dt = datetime.now() - start_time ms = (dt.days * 24 * 60 * 60 + dt.seconds) * 1000 + dt.microseconds / 1000.0 return ms
Solo código de muestra:
import time timestamp = int(time.time()*1000.0)
Salida: 1534343781311
La forma más sencilla que he encontrado para obtener la hora UTC actual en milisegundos es:
# timeutil.py import datetime def get_epochtime_ms(): return round(datetime.datetime.utcnow().timestamp() * 1000) # sample.py import timeutil timeutil.get_epochtime_ms()
Los microsegundos son 1/1000000 segundos, los milisegundos son 1/1000 segundos, por lo que
dt.microseconds / 1000.0 debe ser dt.microseconds / 1000000.0
desde datetime importar datetime d = datetime.now () imprimir d.microsegundo / 1000 + d.segundo * 1000