libreria example python time strftime

example - time.clock python



Usar% f con strftime() en Python para obtener microsegundos (6)

Con el módulo de time python no puedes obtener microsegundos con %f .

Para aquellos que todavía desean ir con el módulo de time solamente, aquí hay una solución alternativa:

now = time.time() mlsec = repr(now).split(''.'')[1][:3] print time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), time.localtime(now))

Debería obtener algo como 2017-01-16 16: 42: 34.625 EET (sí, uso milisegundos, ya que es bastante).

Para frenar el código en detalles, pegue el código debajo de la consola de Python:

import time # get current timestamp now = time.time() # debug now now print now type(now) # debug strf time struct_now = time.localtime(now) print struct_now type(struct_now) # print nicely formatted date print time.strftime("%Y-%m-%d %H:%M:%S %Z", struct_now) # get miliseconds mlsec = repr(now).split(''.'')[1][:3] print mlsec # get your required timestamp string timestamp = time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), struct_now) print timestamp

Para fines de aclaración, también pego mi resultado de Python 2.7.12 aquí:

>>> import time >>> # get current timestamp ... now = time.time() >>> # debug now ... now 1484578293.519106 >>> print now 1484578293.52 >>> type(now) <type ''float''> >>> # debug strf time ... struct_now = time.localtime(now) >>> print struct_now time.struct_time(tm_year=2017, tm_mon=1, tm_mday=16, tm_hour=16, tm_min=51, tm_sec=33, tm_wday=0, tm_yday=16, tm_isdst=0) >>> type(struct_now) <type ''time.struct_time''> >>> # print nicely formatted date ... print time.strftime("%Y-%m-%d %H:%M:%S %Z", struct_now) 2017-01-16 16:51:33 EET >>> # get miliseconds ... mlsec = repr(now).split(''.'')[1][:3] >>> print mlsec 519 >>> # get your required timestamp string ... timestamp = time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), struct_now) >>> print timestamp 2017-01-16 16:51:33.519 EET >>>

Espero eso ayude.

Estoy tratando de usar strftime () con microsegundos de precisión, lo que parece posible usando% f (como se indica here ). Sin embargo, cuando intento el siguiente código:

import time import strftime from time print strftime("%H:%M:%S.%f")

... Obtengo la hora, los minutos y los segundos, pero% f se imprime como% f, sin signos de microsegundos. Estoy ejecutando Python 2.6.5 en Ubuntu, por lo que debería estar bien y debería ser compatible con% f (es compatible con 2.6 o superior, hasta donde yo sé).


Cuando el "% f" para micro segundos no funciona, utilice el siguiente método

import datetime def getTimeStamp(): dt = datetime.datetime.now() return dt.strftime("%Y%j%H%M%S") + str(dt.microsecond)


Estás mirando la documentación incorrecta. El módulo de time tiene documentación diferente .

Puede usar el tiempo de módulo de datetime esta manera:

>>> from datetime import datetime >>> >>> now = datetime.now() >>> now.strftime("%H:%M:%S.%f") ''12:19:40.948000''


Esto debería hacer el trabajo

import datetime datetime.datetime.now().strftime("%H:%M:%S.%f")

Imprimirá

HH:MM:SS.microseconds como este, por ejemplo 14:38:19.425961


Puede usar la función strftime de datetime para obtener esto. El problema es que el tiempo de tiempo acepta un timetuple que no contiene información de microsegundos.

from datetime import datetime datetime.now().strftime("%H:%M:%S.%f")

Debe hacer el truco!


También puede obtener una precisión de microsegundos desde el módulo de time usando su función de time() .
( time.time() devuelve el tiempo en segundos desde epoch. Su parte fraccionaria es el tiempo en microsegundos, que es lo que desea).

>>> from time import time >>> time() ... 1310554308.287459 # the fractional part is what you want. # comparision with strftime - >>> from datetime import datetime >>> from time import time >>> datetime.now().strftime("%f"), time() ... (''287389'', 1310554310.287459)