如何在python datetime.datetime中消除额外的0微秒?

时间:2017-04-21 15:59:57

标签: python datetime timedelta

我正在编写一些代码,我需要比较来自不同来源(API和数据库)的两个日期,但我遇到了一些问题:

这是API和DB给我回复的内容:

import datetime
a = datetime.datetime(2016, 8, 5, 3, 0, 23, 30000)
b ='2016-08-05T03:00:23.3'

如果我比较a == b我收到False所以我试图用这种方式格式化第一个值:

a.strftime("%Y-%m-%dT%H:%M:%S.%f")

问题是,在结果中我有很多额外的0:

'2016-08-05T03:00:23.30000'

在这种情况下,如果我比较a == b我收到False。

有没有办法忽略微秒中的所有尾随0?

1 个答案:

答案 0 :(得分:2)

这两个不一样; datetime有30,000微秒,但字符串有300,000。

不是将datetime转换为字符串,而是将字符串转换为datetime 这提供了更可靠的比较。

import datetime
a = datetime.datetime(2016, 8, 5, 3, 0, 23, 300000) # This should be equal
b ='2016-08-05T03:00:23.3'
c = datetime.datetime.strptime(b, "%Y-%m-%dT%H:%M:%S.%f")
if a == c:
    print "Equal"
else:
    print "Not equal"