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