In [25]: datetime.fromtimestamp(15179052980380002/10000000)
Out[25]: datetime.datetime(2018, 2, 6, 17, 21, 38, 38000)
Como você pode ver aqui, converta para 38000us
ao invés de 38002us
(us
= microssegundo)
Como posso manter "2" do dígito mais correto?
Respostas:
0 para resposta № 1Você pode tentar uma solução simples para armazenar microssegundos separadamente replace
em datetime
objeto
>>> timestamp = 15179052980000000
>>> m_seconds = 38002
>>> dt = datetime.fromtimestamp(timestamp/10000000)
>>> dt
>>> datetime.datetime(2018, 2, 6, 16, 21, 38)
Então, finalmente, substitua o dt
com microssegundos desejados
>>> dt.replace(micorsecond=m_seconds)
>>> dt
>>> datetime.datetime(2018, 2, 6, 16, 21, 38, 38002)
4 para resposta № 2
Você precisaria de nanossegundos de precisão para codificar esse valor - note que você não tem 0,038002, você tem 0,0380002 (dígito extra).
Isso é 38000us (arredondado) ou 38000200ns.