復(fù)習(xí)回顧:
Python 在對時間操作內(nèi)置庫提供了time模塊和datetime模塊。
- time模塊對結(jié)構(gòu)化時間與時間戳和字符串時間進行互相轉(zhuǎn)換相關(guān)方法學(xué)習(xí)
- datetime 模塊提供處理時間和日期的多種類,簡單方便
python 還提供通用日歷相關(guān)方法的calendar模塊,時區(qū)信息zoneinfo模塊,以及第三方庫arrow、dateutil模塊對時間處理
1. datetime 模塊概述
datetime 模塊不僅支持時間日期數(shù)學(xué)運算,還提供高效輸出格式化和操作的屬性相關(guān)方法
datetime 模塊根據(jù)包含時區(qū)信息將日期和時間分為兩種感知型對象和簡單型對象
- 感知型時間對象:充分使用應(yīng)用性算,以及當(dāng)?shù)貙嶋H情況來精確定位時間點,通常用來表示沒有解釋空間的固定時間點
- 簡單型時間對象:不會包含當(dāng)?shù)氐男畔ⅲ磺腥Q于具體程序所計算出的時間點,忽略現(xiàn)實因素,通常可以代表UTC世界標(biāo)準(zhǔn)時間
datetime 提供許多類,能進一步方便與我們?nèi)〕龈兄蜁r間對象的信息。
- date 類型的對象都是簡單型的
- time 和 datetime類型的對象可以是感知型或者簡單型
- timedelta 對象既不是感知型對象也不是簡單型對象
2. datetime 組成部分
datetime 模塊對比time不同的是,它主要提供操作日期和時間的類。
通過查看 datetime 模塊文件主要提供包括處理時間日期的還有時區(qū)相關(guān)的類共6類
類名稱 | 描述 |
---|---|
datetime.date | 用于表示日期,常用的屬性有:year, month和day |
datetime.time | 用于表示時間,常用屬性有:hour, minute, second, microsecond |
datetime.datetime | 用于表示日期時間 |
datetime.timedelta | 用于表示兩個date、time、datetime實例之間的時間間隔,最小單位可達(dá)到微秒 |
datetime.tzinfo | 時區(qū)相關(guān)信息對象的抽象基類。它們由datetime和time類使用,以提供自定義時間的而調(diào)整。 |
datetime.timezone | Python 3.2中新增的功能,實現(xiàn)tzinfo抽象基類的類,表示與UTC的固定偏移量 |
datetime 模塊相關(guān)類關(guān)系圖:
datetime 模塊中類的對象都是不可變類型
date、time這兩個類是我們?nèi)粘J褂米疃嗟?/p>
3. datetime 常量
在datetime.pyi文件中,我們可知道detetime模塊定義了兩個常量dat
常量名稱 | 描述 |
---|---|
datetime.MINYEAR | datetime.date或datetime.datetime對象所允許的年份的最小值,值為1 |
datetime.MAXYEAR | datetime.date或datetime.datetime對象所允許的年份的最大值,只為9999 |
4. datetime 常用方法
datetime 模塊對比time模塊提供更多的操作時間日期的操作,以下我們列出常用的方法
方法 | 作用 |
---|---|
datetime.datetime.timestamp() | 將datetime對象轉(zhuǎn)換輸出成時間戳的形式 |
datetime.datetime.now() | 格式化輸出當(dāng)前系統(tǒng)時間 |
datetime.datetime.timedelta([hours,days]) | 設(shè)置某個屬性的偏移量 |
datetime.datetime.strptime(date_str,format) | 將時間字符串轉(zhuǎn)換為datetime對象 |
datetime.date.fromtimestamp(timestamp) | 將時間戳格式化輸出為日期 |
datetime.date.today() | 返回當(dāng)?shù)乇镜厝掌?/td> |
datetime.time.strftime(fromat) | 返回當(dāng)?shù)貢r間格式化輸出 |
datetime.time.dst() | 返回當(dāng)?shù)厮诘臅r區(qū),tzinfo為none,則返回none |
datetime.tzinfo.utcoffset(dt) | 設(shè)置時區(qū)差,以東為正值,返回timedelta對象 |
datetime.tzinfo.dst(dt) | 將夏令時調(diào)整返回一個timedelta對象 |
5、實操
我們對datetime模塊常用方法學(xué)習(xí),我們來實現(xiàn)輸入日期判斷是昨天或者今天的日期即為Ture,否則為false
def check_current_date(sw_date): cur_date_list = time.strftime("%Y/%m/%d", time.localtime()) .split('/') today = datetime.datetime.now() offset = datetime.timedelta(days=-1) yes_data = today+offset yes_data_list = yes_data.strftime("%Y/%m/%d").split('/') data_list = cur_date_list + yes_data_list print("data_list",data_list) seps = ['/', '-', '_'] for sep in seps: date_parts= sw_date.split(sep) print("cur_date_list = {}, arg sw_date = {}".format(data_list, sw_date)) if len(date_parts) == 3: for data in date_parts: if data not in data_list: return False return True return False
我們來進行測試一下結(jié)果:
print("當(dāng)前日期:",datetime.datetime.now()) print("測試前一天:",check_current_date("2021-10-29")) print("測試當(dāng)前日期:",check_current_date("2021/10/30"))
6、總結(jié)
本期,我們對datetime模塊進行基本的認(rèn)識,知道datetime模塊包含6個類,且對常用方法進行學(xué)習(xí)和實操。
到此這篇關(guān)于 Python 時間操作datetime的文章就介紹到這了,更多相關(guān) Python 時間操作datetime內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://juejin.cn/post/7024792501047263269