您好,登錄后才能下訂單哦!
小編給大家分享一下Python中時間操作datetime怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Python 在對時間操作內(nèi)置庫提供了time模塊和datetime模塊。
time模塊對結(jié)構(gòu)化時間與時間戳和字符串時間進(jìn)行互相轉(zhuǎn)換相關(guān)方法學(xué)習(xí)
datetime 模塊提供處理時間和日期的多種類,簡單方便
python 還提供通用日歷相關(guān)方法的calendar
模塊,時區(qū)信息zoneinfo
模塊,以及第三方庫arrow
、dateutil
模塊對時間處理
datetime
模塊不僅支持時間日期數(shù)學(xué)運算,還提供高效輸出格式化和操作的屬性相關(guān)方法
datetime
模塊根據(jù)包含時區(qū)信息將日期和時間分為兩種感知型對象和簡單型對象
感知型時間對象:充分使用應(yīng)用性算,以及當(dāng)?shù)貙嶋H情況來精確定位時間點,通常用來表示沒有解釋空間的固定時間點
簡單型時間對象:不會包含當(dāng)?shù)氐男畔?,一切取決于具體程序所計算出的時間點,忽略現(xiàn)實因素,通??梢源鞺TC世界標(biāo)準(zhǔn)時間
datetime
提供許多類,能進(jìn)一步方便與我們?nèi)〕龈兄蜁r間對象的信息。
date
類型的對象都是簡單型的
time
和 datetime
類型的對象可以是感知型或者簡單型
timedelta
對象既不是感知型對象也不是簡單型對象
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>
在datetime.pyi文件中,我們可知道detetime模塊定義了兩個常量dat
常量名稱 | 描述 |
---|---|
datetime.MINYEAR | datetime.date或datetime.datetime對象所允許的年份的最小值,值為1 |
datetime.MAXYEAR | datetime.date或datetime.datetime對象所允許的年份的最大值,只為9999 |
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對象 |
我們對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
我們來進(jìn)行測試一下結(jié)果:
print("當(dāng)前日期:",datetime.datetime.now()) print("測試前一天:",check_current_date("2021-10-29")) print("測試當(dāng)前日期:",check_current_date("2021/10/30"))
以上是“Python中時間操作datetime怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。