比较python中的日期字符串

时间:2015-07-10 21:13:25

标签: python python-3.x date datetime

>> a ='2009-05-10'
>>> b ='2009-06-10'
>>> a > b
False
>>> a < b
True
>>> type(a)
<class 'str'>
>>> c = '2009-06-09'
>>> b < c
False
>>> b > c
True
>>> c ='2008-07'
>>> b > c
True
>>> a > c
True

我尝试在不使用库的情况下比较python3中的日期,它似乎正常工作。 这是真的吗? python是否真的理解这些字符串是日期并根据日期格式进行比较,还是在幕后发生了其他事情?

1 个答案:

答案 0 :(得分:8)

不,这种行为背后没有空间的东西。事实上,Python比较字符串lexicographicaly,在这种情况下它可以工作,但它不是正确的方法,因为它也可以接受错误的日期!

这是反例

>>> a ='2009-33-10'
>>> b ='2009-11-1'
>>> a>b
True

作为处理日期的正确方法,您应该使用datetime模块,该模块具有许多用于处理日期对象的工具。

您可以使用datetime.datetime.strptime将字符串转换为日期对象,然后您可以使用基本算术运算来比较日期对象,因为此模块已经支持它们。

enter image description here