簡體   English   中英

如何獲得兩個字符串之間的時間間隔?

[英]How to get a time interval between two strings?

我有2次以H:M的形式存儲在單獨的字符串中,我需要了解這兩者之間的差異,並能夠分辨出這等於多少分鍾。 我嘗試使用datetimetimedelta ,但是我只是一個初學者,我不太了解它是如何工作的。 我每次都遇到屬性錯誤。

所以我有a和b次,而且我必須在幾分鍾內得到它們的差值。

EG if a = 14:08 and b= 14:50則差異應為42

如何在python中以最簡單的方式做到這一點? 另外,每個步驟我需要使用哪種格式?

我認為差異是42,而不是4(因為14:08和14:50之間有42分鍾)。

如果時間始終包含5個字符長的字符串,那么這很容易。

time1 = '14:08'
time2 = '15:03'
hours = int(time2[:2]) - int(time1[:2])
mins  = int(time2[3:]) - int(time1[3:])
print(hours)
print(mins)
print(hours * 60 + mins)

印刷品:

1
-5
55
  • hours將是第二次和第一次的左兩位數字[:1]的整數值
  • 分鍾將是第二次和第一次的右邊兩位數字的整數值[3:]減去
  • 這會打印55 ...以您的值打印出來42(上面的示例顯示它在整整一個小時內也可以使用。

您可以使用datetime.strptime

而且區別是42不是4 50-8==42我認為那是一個錯字

from datetime import datetime

a,b = "14:08", "14:50"

#convert to datetime
time_a = datetime.strptime(a, "%H:%M")
time_b = datetime.strptime(b, "%H:%M")

#get timedelta from the difference of the two datetimes
delta = time_b - time_a

#get the minutes elapsed
minutes = (delta.seconds//60)%60

print(minutes)
#42

通過從給定的時間字符串ab減去前者,可以得到從給定的時間字符串ab創建的datetime.timedelta對象之間的差,並使用total_seconds方法獲得時間間隔(以秒為單位),您可以將時間間隔除以秒數到60:

from datetime import timedelta
from operator import sub
sub(*(timedelta(**dict(zip(('hours', 'minutes'), map(int, t.split(':'))))) for t in (b, a))).total_seconds() // 60

因此,假設a = '29:50'b = '30:08' ,則返回:

18.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM