Python datetime:如何保持整个'us(微秒)`?

时间:2018-02-06 08:34:36

标签: python datetime

In [25]: datetime.fromtimestamp(15179052980380002/10000000)
Out[25]: datetime.datetime(2018, 2, 6, 17, 21, 38, 38000)

正如您在此处所见,它转换为38000us而不是38002usus =微秒)

我怎样才能保持' 2'最右边的数字?

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)