我正在嘗試按如下方式計算時間差異:
import datetime
time_1 = datetime.datetime.strptime('18:00',"%H:%M")
time_2 = datetime.datetime.strptime('05:00',"%H:%M")
time_interval = time_2 - time_1
這導致:
datetime.timedelta(days=-1, seconds=39600)
現在,當我將其添加到某個日期時,例如:
low_date = datetime.datetime(2000, 1, 1, 18, 0)
low_date time_interval
這導致:
datetime.datetime(2000, 1, 1, 4, 0)
所以,它代表時間倒退,但我總是希望差異向前發展,即time_2應該被解釋為time_1. 在這種情況下,time_2是5 AM第二天。
如果time_2是這樣的:
time_2 = datetime.datetime.strptime('21:00',"%H:%M")
它應該被解釋為9 PM在同一天。
編輯
通過添加以下內容解決了它:
if time_interval.days < 0:
time_interval = datetime.timedelta(
days=0,
seconds=time_interval.seconds)
uj5u.com熱心網友回復:
你給的兩次都是在同一天。
如果您的意思是第二個總是在未來(正差異),那么您需要將它移到未來,如果它還沒有的話。檢查它是否“更小”,如果它更小,你必須增加一天。
time_1 = datetime.datetime.strptime('18:00',"%H:%M")
time_2 = datetime.datetime.strptime('05:00',"%H:%M")
if time_2 < time_1:
time_2 = datetime.timedelta(days=1)
time_interval = time_2 - time_1
# datetime.timedelta(seconds=39600)
# that's 6 5 = 11 hours = 39600 seconds
uj5u.com熱心網友回復:
您需要從 中減去time_2,time_1否則您將以負數和無意義的值結束:
import datetime
time_1 = datetime.datetime.strptime('18:00',"%H:%M")
time_2 = datetime.datetime.strptime('05:00',"%H:%M")
if time_1 <= time_2:
time_1, time_2 = time_2, time_1
time_interval = time_1 - time_2
print(time_interval)
輸出:
13:00:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/497465.html
上一篇:Pandas中的多個日期轉換
