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