In [25]: datetime.fromtimestamp(15179052980380002/10000000)
Out[25]: datetime.datetime(2018, 2, 6, 17, 21, 38, 38000)
正如您在此处所见,它转换为38000us
而不是38002us
(us
=微秒)
我怎样才能保持' 2'最右边的数字?
答案 0 :(得分:4)
您需要纳秒精度来编码该值 - 请注意,您没有.038002,您有0.0380002(额外数字)。
这是38000us(四舍五入),或38000200ns。
答案 1 :(得分:0)
您可以尝试一种简单的解决方法,分别存储微秒,然后replace
将其存入datetime
对象
>>> timestamp = 15179052980000000
>>> m_seconds = 38002
>>> dt = datetime.fromtimestamp(timestamp/10000000)
>>> dt
>>> datetime.datetime(2018, 2, 6, 16, 21, 38)
然后最后用所需的微秒替换dt
>>> dt.replace(micorsecond=m_seconds)
>>> dt
>>> datetime.datetime(2018, 2, 6, 16, 21, 38, 38002)