fecha biblioteca actual python ruby datetime epoch

biblioteca - fecha actual python



convirtiendo el tiempo de época con milisegundos a datetime (2)

Use datetime.datetime.fromtimestamp :

>>> import datetime >>> s = 1236472051807 / 1000.0 >>> datetime.datetime.fromtimestamp(s).strftime(''%Y-%m-%d %H:%M:%S.%f'') ''2009-03-08 09:27:31.807000''

%f directiva %f solo es compatible con datetime.datetime.strftime , no con time.strftime .

ACTUALIZACIÓN Alternativa usando % , str.format :

>>> import time >>> s, ms = divmod(1236472051807, 1000) # (1236472051, 807) >>> ''%s.%03d'' % (time.strftime(''%Y-%m-%d %H:%M:%S'', time.gmtime(s)), ms) ''2009-03-08 00:27:31.807'' >>> ''{}.{:03d}''.format(time.strftime(''%Y-%m-%d %H:%M:%S'', time.gmtime(s)), ms) ''2009-03-08 00:27:31.807''

He usado un script de ruby ​​para convertir el sello de tiempo iso a epoch, los archivos que estoy analizando tienen la siguiente estructura de sello de tiempo:

2009-03-08T00:27:31.807

Como quiero guardar milisegundos, utilicé el siguiente código ruby ​​para convertirlo a un tiempo de época:

irb(main):010:0> DateTime.parse(''2009-03-08T00:27:31.807'').strftime("%Q") => "1236472051807"

Pero en Python intenté seguir:

import time time.strftime(''%Y-%m-%d %H:%M:%S'', time.gmtime(1236472051807))

Pero no obtengo la fecha de hora original,

>>> time.strftime(''%Y-%m-%d %H:%M:%S'', time.gmtime(1236472051807)) ''41152-03-29 02:50:07'' >>>

Me pregunto ¿está relacionado con la forma en que estoy formateando?


esos son milisegundos, solo divídalos por 1000, ya que gmtime espera segundos ...

time.strftime(''%Y-%m-%d %H:%M:%S'', time.gmtime(1236472051807/1000.0))