網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
之前我們?cè)?jīng)分享過:Python獲取某一日期是“星期幾”的6種方法!實(shí)際上,在我們使用Python處理日期/時(shí)間的時(shí)候,經(jīng)常會(huì)遇到各種各樣的問題。今天我們就來(lái)探討另一個(gè)問題,如何用Python比較兩個(gè)日期?
datetime
如果需要用Python處理日期和時(shí)間,大家肯定會(huì)先想到datetime、time、calendar等模塊。在這其中,datetime模塊主要是用來(lái)表示日期時(shí)間的,就是我們常說(shuō)的年月日/時(shí)分秒。
datetime模塊中常用的類:
類名 | 功能說(shuō)明 |
---|---|
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)算符<
或>
來(lái)比較兩個(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)
輸出結(jié)果:
以上,便是如何用Python比較兩個(gè)日期的幾個(gè)小方法。實(shí)際上,Python中時(shí)間處理的不同模塊、不同函數(shù)有很多可以總結(jié)的。
calendar(日歷)模塊、time(時(shí)間)模塊我們后續(xù)還會(huì)詳細(xì)介紹它們的小知識(shí)點(diǎn)。
原文鏈接:https://mp.weixin.qq.com/s/zjHbne_FZqvk9Anhe9rXew
相關(guān)推薦
- 2022-09-21 Android?Intent傳遞大量數(shù)據(jù)出現(xiàn)問題解決_Android
- 2022-12-27 詳解Golang中interface接口的原理和使用技巧_Golang
- 2024-07-13 SpringBoot入門(解決JDK8不存在問題)
- 2023-07-04 Linux之top命令詳解
- 2022-08-04 scrapy中的spider傳參實(shí)現(xiàn)增量的方法_python
- 2023-04-13 react 打包優(yōu)化,配置生產(chǎn)環(huán)境不輸出console.log
- 2023-06-20 Redis?設(shè)置密碼無(wú)效問題解決_Redis
- 2022-08-22 C++貪心算法處理多機(jī)調(diào)度問題詳解_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支