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)表示沒(méi)有解釋空間的固定時(shí)間點(diǎn)
- 簡(jiǎn)單型時(shí)間對(duì)象:不會(huì)包含當(dāng)?shù)氐男畔?,一切取決于具體程序所計(jì)算出的時(shí)間點(diǎn),忽略現(xiàn)實(shí)因素,通常可以代表UTC世界標(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í)間的類。
通過(guò)查看 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)文章
python開(kāi)發(fā)之a(chǎn)naconda以及win7下安裝gensim的方法
這篇文章主要介紹了python開(kāi)發(fā)之a(chǎn)naconda以及win7下安裝gensim的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07pandas.DataFrame.from_dict直接從字典構(gòu)建DataFrame的方法
本文主要介紹了pandas.DataFrame.from_dict直接從字典構(gòu)建DataFrame的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06python繼承threading.Thread實(shí)現(xiàn)有返回值的子類實(shí)例
這篇文章主要介紹了python繼承threading.Thread實(shí)現(xiàn)有返回值的子類實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Django1.7+python 2.78+pycharm配置mysql數(shù)據(jù)庫(kù)教程
原本感覺(jué)在Django1.7+python 2.78+pycharm環(huán)境下配置mysql數(shù)據(jù)庫(kù)是件很容易的事情,結(jié)果具體操作的時(shí)候才發(fā)現(xiàn),問(wèn)題還是挺多的,這里記錄一下最終的配置結(jié)果,給需要的小伙伴參考下吧2014-11-11一文帶你掌握Python中enumerate函數(shù)和for循環(huán)的對(duì)比
在Python編程中,循環(huán)是一項(xiàng)常見(jiàn)的任務(wù),而for循環(huán)是最常見(jiàn)的一種,然而,Python提供了enumerate函數(shù),它允許在迭代過(guò)程中訪問(wèn)元素的同時(shí)獲得它們的索引,下面我們就來(lái)學(xué)習(xí)一下二者的區(qū)別吧2023-11-11python實(shí)現(xiàn)json轉(zhuǎn)yolo格式
在目標(biāo)檢測(cè)數(shù)據(jù)集處理中,我們經(jīng)常會(huì)遇到標(biāo)簽之間不同格式的轉(zhuǎn)化,本文主要介紹了python實(shí)現(xiàn)json轉(zhuǎn)yolo格式,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12