Python 比較兩個日期的多種方法!
人生苦短,快學(xué)Python!
datetime
如果需要用Python處理日期和時間,大家肯定會先想到datetime、time、calendar等模塊。在這其中,datetime模塊主要是用來表示日期時間的,就是我們常說的年月日/時分秒。
datetime模塊中常用的類:
類名 | 功能說明 |
date | 日期對象,常用的屬性有year,month,day |
time | 時間對象 |
datetime | 日期時間對象,常用的屬性有hour,minute,second,microsecond |
timedelta | 時間間隔,即兩個時間點之間的長度 |
tzinfo | 時區(qū)信息對象 |
那么,如何用datetime模塊比較兩個日期?
在交互式環(huán)境中輸入如下命令:
import datetime
first_date = datetime.date(2022, 2, 22)
second_date = datetime.date(2022, 3, 1)
print(first_date < second_date)
輸出:
True
我們會發(fā)現(xiàn)datetime模塊可以使用比較運算符<或>來比較兩個日期。上述代碼中比較的是日期對象,如果換成日期時間對象也同樣可以這樣比較。
在交互式環(huán)境中輸入如下命令:
import datetime
first_date = datetime.datetime(2022, 2, 22, 12, 5, 0)
second_date = datetime.datetime(2022, 3, 1, 12, 5, 0)
print(first_date < second_date)
輸出:
True
strptime
前面示例代碼中,其實比較的都是日期對象/日期時間對象。但如果用戶輸入的、或批量導(dǎo)入的日期和時間是字符串格式,我們在進行比較的第一步就是先將str轉(zhuǎn)換為datetime。
至于轉(zhuǎn)換方法也非常簡單,只需要通過datetime.strptime即可實現(xiàn)。
在交互式環(huán)境中輸入如下命令:
import datetime
strftime1 = datetime.datetime.strptime("2022-02-22", "%Y-%m-%d")
strftime2 = datetime.datetime.strptime("2022-03-01", "%Y-%m-%d")
print("日期2022-02-22大于2022-03-01:", strftime1 > strftime2)
輸出結(jié)果:
另外time模塊中也有strptime()函數(shù),可以根據(jù)指定的格式把時間字符串解析為時間元組,利用這一特性也可以比較兩個日期。
在交互式環(huán)境中輸入如下命令:
import time
strftime1 = time.strptime("2022-02-22", "%Y-%m-%d")
strftime2 = time.strptime("2022-03-01", "%Y-%m-%d")
print(strftime1)
print(strftime2)
print("日期2022-02-22大于2022-03-01:", strftime1 > strftime2)
以上,便是如何用Python比較兩個日期的幾個小方法。實際上,Python中時間處理的不同模塊、不同函數(shù)有很多可以總結(jié)的。
calendar(日歷)模塊、time(時間)模塊我們后續(xù)還會詳細介紹它們的小知識點,大家如果感興趣可以給本文多多點贊支持一下。