一、timedelta是什麼?
timedelta是Python datetime模塊中的一個類,用於表示兩個時間之間的時間差。
timedelta類定義了如下屬性:
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
其中每個參數都是可選的,如果不指定,默認值為0。參數的精度從左至右依次降低,也就是參數的值越靠右,影響時間差的精度就越小。
下面通過兩個時間相減來創建一個timedelta對象來進行示例:
import datetime
start_time = datetime.datetime.now()
end_time = start_time + datetime.timedelta(minutes=30)
diff = end_time - start_time
print(diff)
輸出結果為:
0:30:00
可以看到,輸出結果就是兩個時間之間的時間差。
二、timedelta的用法
1. 計算時間差
計算兩個時間之間的時間差,可以簡單地通過兩個時間相減來實現,如下所示:
import datetime
start_time = datetime.datetime.now()
end_time = start_time + datetime.timedelta(minutes=30)
diff = end_time - start_time
print(diff)
輸出結果為:
0:30:00
其中,輸出結果為timedelta類型的對象,即時間差。
2. 計算未來/過去的日期時間
可以使用timedelta類來計算一個日期時間在未來或者過去某一段時間之後或之前的日期時間,示例如下:
import datetime
now = datetime.datetime.now()
print(now)
#計算一小時之後的時間
one_hour_later = now + datetime.timedelta(hours=1)
print(one_hour_later)
#計算兩天之前的時間
two_days_ago = now - datetime.timedelta(days=2)
print(two_days_ago)
輸出結果為:
2021-09-03 11:06:17.510752
2021-09-03 12:06:17.510752
2021-09-01 11:06:17.510752
3. 獲取當前時間
可以使用datetime模塊中的datetime類來獲取當前時間,代碼示例如下:
import datetime
now = datetime.datetime.now()
print(now)
輸出結果為:
2021-09-03 11:06:17.510752
4. 格式化輸出時間差
可以使用timedelta類的屬性來獲取時間差的各個分量的值,以實現更加靈活的輸出方式,如下所示:
import datetime
start_time = datetime.datetime.now()
end_time = start_time + datetime.timedelta(minutes=30)
diff = end_time - start_time
print(f"時間差總秒數:{diff.total_seconds()}")
print(f"時間差天數:{diff.days}")
print(f"時間差秒數:{diff.seconds}")
print(f"時間差微秒數:{diff.microseconds}")
輸出結果為:
時間差總秒數:1800.0
時間差天數:0
時間差秒數:1800
時間差微秒數:0
三、總結
在Python中,使用timedelta類可以非常方便地計算兩個時間之間的時間差,並進行靈活的輸出。通過使用timedelta類,我們可以快速實現許多實際應用場景中的時間計算功能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/195715.html