簡體   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