繁体   English   中英

比较python中的日期字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM