如何消除pythondatetime.datetime中多余的微秒0?

How can I eliminate the extra 0 of microsecond in python datetime.datetime?

我正在编写一些代码,我需要比较来自不同来源(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 吗?

这两个不一样; 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"