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