python內(nèi)置模塊datetime.timedelta計算時間間隔示例代碼
Python的datetime模塊是一個強大的日期和時間處理庫,它提供了多個類來處理日期和時間。主要包括幾個功能類datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。
使用datetime模塊
要使用 datetime模塊,直接導入它即可。
import datetime 或者 from datetime import time,datetime,date,timedelta
timedelta類
datetime.timedelta用于表示兩個日期或時間之間的差異(即時間間隔)。它通常用于日期的算術運算,比如計算一個日期加上或減去一定的時間間隔后的新日期。
timedelta 對象初始化參數(shù)包含天(day)、秒(second)、微秒(microsecond)、毫秒(milliseconds、分鐘(minutes)、小時(hours)、星期(weeks)時間單位,但是上述參數(shù)初始化時星期會轉化為天數(shù),分鐘和小時會轉為秒數(shù),毫秒會轉為微秒,如下紅框所示:
該類初始化后,可直接調(diào)用如下的屬性函數(shù)獲得對應的參數(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í)行結果:
17
3690
2000
根據(jù)上述紅框中的計算公式驗算如下:
days = 10 + 1*7 = 17
seconds= 30 + 1*60 +1*60 = 3690
microseconds = 1000 + 1*1000 = 2000
1 timedelta配合datetime.date進行日期的加減運算
在datetime.date(只涉及年,月,日)日期基礎上計算n天前或者n天后對應的日期。
舉例:
- 計算當前日期在1個星期后對應的日期
date_ins = date.today() print(date_ins + timedelta(weeks=1)) 結果:2024-09-21
- 計算某個日期在50天后對應的日期
date_ins = datetime.date(2024,9,1) print(date_ins + datetime.timedelta(days=50)) 結果:2024-10-21
- 計算某個日期在50天前對應的日期
date_ins = datetime.date(2024,9,1) print(date_ins + datetime.timedelta(days=-50)) 結果:2024-07-13
- 計算某個日期在7個星期后對應的日期
date_ins = date(2024,9,1) print(date_ins + timedelta(weeks=7)) 結果:2024-10-20
- 計算某個日期在435個小時后對應的日期
date_ins = date(2024,9,1) print(date_ins + timedelta(hours=435)) 結果:2024-09-19
2 timedelta配合datetime.daterime進行日期的加減運算
在datetime.datetime(涉及年,月,日,小時,分鐘,秒,微秒)時間基礎上計算某個時間后對應的時間。
舉例:
- 計算當前時間在50天后對應的時間
date_ins = datetime.today() print(date_ins + timedelta(days=50)) 結果:2024-11-03 10:11:02.663574
- 計算某個時間在50天2小時后對應的時間
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)) 結果:2024-10-25 23:34:25
- 計算某個時間在50天前對應的時間再加上2小時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)) 結果:2024-07-17 23:54:25
- 計算某個時間加上1小時10秒1萬微秒后對應的時間
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)) 結果:2024-09-05 22:34:35.020000
datetime.datetime和 datetime.timedelta配合使用后,有很多種時間計算方式,此處不再一一列舉。
3 timedelta類計算時間之差
不用配合detetime。datetime和 datetime.date類,timedelta類本身也可以計算兩個時間的間隔
舉例:實例化兩個類對象,timedelta_ins1 時間大于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)
結果:7 days, 2:00:10
4 total_seconds()
該函數(shù)返回timedelta類初始化對象對應的秒數(shù)。計算公式如下:
舉例:
timedelta_ins = timedelta(hours=1,seconds=10,microseconds=10000) print(timedelta_ins.total_seconds())
結果:3610.01
5 比較時間大小
正因為timedelta類有__eq__,__lt__等魔法方法,所以具備大小比較的功能。
測試代碼:實例化兩個類對象,timedelta_ins1 時間大于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)
比較結果:False
總結
到此這篇關于python內(nèi)置模塊datetime.timedelta計算時間間隔的文章就介紹到這了,更多相關python datetime.timedelta計算時間間隔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決安裝pycharm后不能執(zhí)行python腳本的問題
今天小編就為大家分享一篇解決安裝pycharm后不能執(zhí)行python腳本的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01Pytorch統(tǒng)計參數(shù)網(wǎng)絡參數(shù)數(shù)量方式
這篇文章主要介紹了Pytorch統(tǒng)計參數(shù)網(wǎng)絡參數(shù)數(shù)量方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02