[英]Comparing date strings in python
>> 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是否真的理解这些字符串是日期并根据日期格式进行比较,还是在幕后进行其他事情?
不,这种行为背后没有空间的东西。 事实上,Python比较字符串lexicographicaly,在这种情况下它可以工作,但它不是正确的方法,因为它也可以接受错误的日期!
这是一个反例 :
>>> a ='2009-33-10'
>>> b ='2009-11-1'
>>> a>b
True
作为处理日期的正确方法,您应该使用datetime
模块,该模块具有许多用于处理日期对象的工具。
您可以使用datetime.datetime.strptime
将字符串转换为日期对象,然后您可以使用基本算术运算来比较日期对象,因为此模块已经支持它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.