Python?時(shí)間操作datetime詳情
復(fù)習(xí)回顧:
Python 在對(duì)時(shí)間操作內(nèi)置庫(kù)提供了time模塊和datetime模塊。
- time模塊對(duì)結(jié)構(gòu)化時(shí)間與時(shí)間戳和字符串時(shí)間進(jìn)行互相轉(zhuǎn)換相關(guān)方法學(xué)習(xí)
- datetime 模塊提供處理時(shí)間和日期的多種類,簡(jiǎn)單方便
python 還提供通用日歷相關(guān)方法的calendar模塊,時(shí)區(qū)信息zoneinfo模塊,以及第三方庫(kù)arrow、dateutil模塊對(duì)時(shí)間處理

1. datetime 模塊概述
datetime 模塊不僅支持時(shí)間日期數(shù)學(xué)運(yùn)算,還提供高效輸出格式化和操作的屬性相關(guān)方法
datetime 模塊根據(jù)包含時(shí)區(qū)信息將日期和時(shí)間分為兩種感知型對(duì)象和簡(jiǎn)單型對(duì)象
- 感知型時(shí)間對(duì)象:充分使用應(yīng)用性算,以及當(dāng)?shù)貙?shí)際情況來(lái)精確定位時(shí)間點(diǎn),通常用來(lái)表示沒有解釋空間的固定時(shí)間點(diǎn)
- 簡(jiǎn)單型時(shí)間對(duì)象:不會(huì)包含當(dāng)?shù)氐男畔ⅲ磺腥Q于具體程序所計(jì)算出的時(shí)間點(diǎn),忽略現(xiàn)實(shí)因素,通??梢源鞺TC世界標(biāo)準(zhǔn)時(shí)間
datetime 提供許多類,能進(jìn)一步方便與我們?nèi)〕龈兄蜁r(shí)間對(duì)象的信息。
date類型的對(duì)象都是簡(jiǎn)單型的time和datetime類型的對(duì)象可以是感知型或者簡(jiǎn)單型timedelta對(duì)象既不是感知型對(duì)象也不是簡(jiǎn)單型對(duì)象
2. datetime 組成部分
datetime 模塊對(duì)比time不同的是,它主要提供操作日期和時(shí)間的類。
通過查看 datetime 模塊文件主要提供包括處理時(shí)間日期的還有時(shí)區(qū)相關(guān)的類共6類

| 類名稱 | 描述 |
|---|---|
| datetime.date | 用于表示日期,常用的屬性有:year, month和day |
| datetime.time | 用于表示時(shí)間,常用屬性有:hour, minute, second, microsecond |
| datetime.datetime | 用于表示日期時(shí)間 |
| datetime.timedelta | 用于表示兩個(gè)date、time、datetime實(shí)例之間的時(shí)間間隔,最小單位可達(dá)到微秒 |
| datetime.tzinfo | 時(shí)區(qū)相關(guān)信息對(duì)象的抽象基類。它們由datetime和time類使用,以提供自定義時(shí)間的而調(diào)整。 |
| datetime.timezone | Python 3.2中新增的功能,實(shí)現(xiàn)tzinfo抽象基類的類,表示與UTC的固定偏移量 |
datetime 模塊相關(guān)類關(guān)系圖:

datetime 模塊中類的對(duì)象都是不可變類型
date、time這兩個(gè)類是我們?nèi)粘J褂米疃嗟?/p>
3. datetime 常量
在datetime.pyi文件中,我們可知道detetime模塊定義了兩個(gè)常量dat
| 常量名稱 | 描述 |
|---|---|
| datetime.MINYEAR | datetime.date或datetime.datetime對(duì)象所允許的年份的最小值,值為1 |
| datetime.MAXYEAR | datetime.date或datetime.datetime對(duì)象所允許的年份的最大值,只為9999 |
4. datetime 常用方法
datetime 模塊對(duì)比time模塊提供更多的操作時(shí)間日期的操作,以下我們列出常用的方法
| 方法 | 作用 |
|---|---|
| datetime.datetime.timestamp() | 將datetime對(duì)象轉(zhuǎn)換輸出成時(shí)間戳的形式 |
| datetime.datetime.now() | 格式化輸出當(dāng)前系統(tǒng)時(shí)間 |
| datetime.datetime.timedelta([hours,days]) | 設(shè)置某個(gè)屬性的偏移量 |
| datetime.datetime.strptime(date_str,format) | 將時(shí)間字符串轉(zhuǎn)換為datetime對(duì)象 |
| datetime.date.fromtimestamp(timestamp) | 將時(shí)間戳格式化輸出為日期 |
| datetime.date.today() | 返回當(dāng)?shù)乇镜厝掌?/td> |
| datetime.time.strftime(fromat) | 返回當(dāng)?shù)貢r(shí)間格式化輸出 |
| datetime.time.dst() | 返回當(dāng)?shù)厮诘臅r(shí)區(qū),tzinfo為none,則返回none |
| datetime.tzinfo.utcoffset(dt) | 設(shè)置時(shí)區(qū)差,以東為正值,返回timedelta對(duì)象 |
| datetime.tzinfo.dst(dt) | 將夏令時(shí)調(diào)整返回一個(gè)timedelta對(duì)象 |
5、實(shí)操
我們對(duì)datetime模塊常用方法學(xué)習(xí),我們來(lái)實(shí)現(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
我們來(lái)進(jìn)行測(cè)試一下結(jié)果:
print("當(dāng)前日期:",datetime.datetime.now())
print("測(cè)試前一天:",check_current_date("2021-10-29"))
print("測(cè)試當(dāng)前日期:",check_current_date("2021/10/30"))
6、總結(jié)
本期,我們對(duì)datetime模塊進(jìn)行基本的認(rèn)識(shí),知道datetime模塊包含6個(gè)類,且對(duì)常用方法進(jìn)行學(xué)習(xí)和實(shí)操。
到此這篇關(guān)于 Python 時(shí)間操作datetime的文章就介紹到這了,更多相關(guān) Python 時(shí)間操作datetime內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問題及解決方法
這篇文章主要介紹了Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
PyTorch中torch.utils.data.DataLoader實(shí)例詳解
torch.utils.data.DataLoader主要是對(duì)數(shù)據(jù)進(jìn)行batch的劃分,下面這篇文章主要給大家介紹了關(guān)于PyTorch中torch.utils.data.DataLoader的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
pytorch 中forward 的用法與解釋說(shuō)明
這篇文章主要介紹了pytorch 中forward 的用法與解釋說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-02-02
Python如何讀寫二進(jìn)制數(shù)組數(shù)據(jù)
這篇文章主要介紹了Python如何讀寫二進(jìn)制數(shù)組數(shù)據(jù),文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08
Python隨機(jī)數(shù)用法實(shí)例詳解【基于random模塊】
這篇文章主要介紹了Python隨機(jī)數(shù)用法,結(jié)合實(shí)例形式分析了基于random模塊的各種隨機(jī)數(shù)操作常用技巧,需要的朋友可以參考下2017-04-04
Python邊緣檢測(cè)之prewitt,sobel和laplace算子詳解
這篇文章主要為大家詳細(xì)介紹了Python邊緣檢測(cè)中prewitt、sobel和laplace算子的使用方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-04-04

