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