python內(nèi)置模塊datetime.timedelta計(jì)算時(shí)間間隔示例代碼

Python的datetime模塊是一個(gè)強(qiáng)大的日期和時(shí)間處理庫,它提供了多個(gè)類來處理日期和時(shí)間。主要包括幾個(gè)功能類datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。
使用datetime模塊
要使用 datetime模塊,直接導(dǎo)入它即可。
import datetime 或者 from datetime import time,datetime,date,timedelta
timedelta類
datetime.timedelta用于表示兩個(gè)日期或時(shí)間之間的差異(即時(shí)間間隔)。它通常用于日期的算術(shù)運(yùn)算,比如計(jì)算一個(gè)日期加上或減去一定的時(shí)間間隔后的新日期。
timedelta 對(duì)象初始化參數(shù)包含天(day)、秒(second)、微秒(microsecond)、毫秒(milliseconds、分鐘(minutes)、小時(shí)(hours)、星期(weeks)時(shí)間單位,但是上述參數(shù)初始化時(shí)星期會(huì)轉(zhuǎn)化為天數(shù),分鐘和小時(shí)會(huì)轉(zhuǎn)為秒數(shù),毫秒會(huì)轉(zhuǎn)為微秒,如下紅框所示:

該類初始化后,可直接調(diào)用如下的屬性函數(shù)獲得對(duì)應(yīng)的參數(shù)值

舉例:timedelta類按照如下參數(shù)初始化
timedelta_ins= timedelta(days=10, seconds=30,microseconds=1000,
milliseconds=1,minutes=1, hours=1,weeks=1)
print(timedelta_ins.days)
print(timedelta_ins.seconds)
print(timedelta_ins.microseconds)執(zhí)行結(jié)果:
17
3690
2000
根據(jù)上述紅框中的計(jì)算公式驗(yàn)算如下:
days = 10 + 1*7 = 17
seconds= 30 + 1*60 +1*60 = 3690
microseconds = 1000 + 1*1000 = 2000
1 timedelta配合datetime.date進(jìn)行日期的加減運(yùn)算
在datetime.date(只涉及年,月,日)日期基礎(chǔ)上計(jì)算n天前或者n天后對(duì)應(yīng)的日期。
舉例:
- 計(jì)算當(dāng)前日期在1個(gè)星期后對(duì)應(yīng)的日期
date_ins = date.today() print(date_ins + timedelta(weeks=1)) 結(jié)果:2024-09-21
- 計(jì)算某個(gè)日期在50天后對(duì)應(yīng)的日期
date_ins = datetime.date(2024,9,1) print(date_ins + datetime.timedelta(days=50)) 結(jié)果:2024-10-21
- 計(jì)算某個(gè)日期在50天前對(duì)應(yīng)的日期
date_ins = datetime.date(2024,9,1) print(date_ins + datetime.timedelta(days=-50)) 結(jié)果:2024-07-13
- 計(jì)算某個(gè)日期在7個(gè)星期后對(duì)應(yīng)的日期
date_ins = date(2024,9,1) print(date_ins + timedelta(weeks=7)) 結(jié)果:2024-10-20
- 計(jì)算某個(gè)日期在435個(gè)小時(shí)后對(duì)應(yīng)的日期
date_ins = date(2024,9,1) print(date_ins + timedelta(hours=435)) 結(jié)果:2024-09-19
2 timedelta配合datetime.daterime進(jìn)行日期的加減運(yùn)算
在datetime.datetime(涉及年,月,日,小時(shí),分鐘,秒,微秒)時(shí)間基礎(chǔ)上計(jì)算某個(gè)時(shí)間后對(duì)應(yīng)的時(shí)間。
舉例:
- 計(jì)算當(dāng)前時(shí)間在50天后對(duì)應(yīng)的時(shí)間
date_ins = datetime.today() print(date_ins + timedelta(days=50)) 結(jié)果:2024-11-03 10:11:02.663574
- 計(jì)算某個(gè)時(shí)間在50天2小時(shí)后對(duì)應(yīng)的時(shí)間
from datetime import datetime,timedelta
date_ins = datetime(2024,month=9,day=5,hour=21,minute=34,
second=25,microsecond=10000)
print(date_ins + timedelta(days=50,hours=2))
結(jié)果:2024-10-25 23:34:25
- 計(jì)算某個(gè)時(shí)間在50天前對(duì)應(yīng)的時(shí)間再加上2小時(shí)20分
from datetime import datetime,timedelta
date_ins = datetime(2024,month=9,day=5,hour=21,minute=34,
second=25,microsecond=10000)
print(date_ins + timedelta(days=-50,hours=2,minutes=20))
結(jié)果:2024-07-17 23:54:25- 計(jì)算某個(gè)時(shí)間加上1小時(shí)10秒1萬微秒后對(duì)應(yīng)的時(shí)間
from datetime import datetime,timedelta
date_ins = datetime(2024,month=9,day=5,hour=21,minute=34,
second=25,microsecond=10000)
print(date_ins + timedelta(hours=1,seconds=10,microseconds=10000))
結(jié)果:2024-09-05 22:34:35.020000datetime.datetime和 datetime.timedelta配合使用后,有很多種時(shí)間計(jì)算方式,此處不再一一列舉。
3 timedelta類計(jì)算時(shí)間之差
不用配合detetime。datetime和 datetime.date類,timedelta類本身也可以計(jì)算兩個(gè)時(shí)間的間隔
舉例:實(shí)例化兩個(gè)類對(duì)象,timedelta_ins1 時(shí)間大于timedelta_ins2
timedelta_ins1 = timedelta(hours=1,seconds=20,microseconds=10000,weeks=2) timedelta_ins2 = timedelta(days=6,hours=23,seconds=10,microseconds=10000) print(timedelta_ins1 - timedelta_ins2)
結(jié)果:7 days, 2:00:10
4 total_seconds()
該函數(shù)返回timedelta類初始化對(duì)象對(duì)應(yīng)的秒數(shù)。計(jì)算公式如下:

舉例:
timedelta_ins = timedelta(hours=1,seconds=10,microseconds=10000) print(timedelta_ins.total_seconds())
結(jié)果:3610.01
5 比較時(shí)間大小
正因?yàn)閠imedelta類有__eq__,__lt__等魔法方法,所以具備大小比較的功能。

測(cè)試代碼:實(shí)例化兩個(gè)類對(duì)象,timedelta_ins1 時(shí)間大于timedelta_ins2
timedelta_ins1 = timedelta(hours=1,seconds=10,microseconds=10000,weeks=1) timedelta_ins2 = timedelta(days=6,hours=23,seconds=10,microseconds=10000) print(timedelta_ins1 < timedelta_ins2)
比較結(jié)果:False
總結(jié)
到此這篇關(guān)于python內(nèi)置模塊datetime.timedelta計(jì)算時(shí)間間隔的文章就介紹到這了,更多相關(guān)python datetime.timedelta計(jì)算時(shí)間間隔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python一行代碼實(shí)現(xiàn)快速排序的方法
排序算法是在高考或中考中出現(xiàn)頻率最多的點(diǎn),所以大家要掌握,今天小編給大家?guī)砹送ㄟ^Python一行代碼實(shí)現(xiàn)快速排序的方法,感興趣的朋友跟隨小編一起看看吧2019-04-04
解決安裝pycharm后不能執(zhí)行python腳本的問題
今天小編就為大家分享一篇解決安裝pycharm后不能執(zhí)行python腳本的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
python代碼如何實(shí)現(xiàn)余弦相似性計(jì)算
這篇文章主要介紹了python代碼如何實(shí)現(xiàn)余弦相似性計(jì)算,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
python基于TCP實(shí)現(xiàn)的文件下載器功能案例
這篇文章主要介紹了python基于TCP實(shí)現(xiàn)的文件下載器功能,結(jié)合具體實(shí)例形式分析了Python使用socket模塊實(shí)現(xiàn)的tcp協(xié)議下載功能客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
Pytorch統(tǒng)計(jì)參數(shù)網(wǎng)絡(luò)參數(shù)數(shù)量方式
這篇文章主要介紹了Pytorch統(tǒng)計(jì)參數(shù)網(wǎng)絡(luò)參數(shù)數(shù)量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

