Django Python如何计算给出两个时间字符串的时差

问题描述 投票:1回答:1

在Django Python中,我有2个字符串表示HH:mm,我怎样才能获得持续时间(差异)?

例如:

15:30 and 11:00 ---> difference is 04:30
19:28 and 12:25 ---> difference is 07:03
python django time duration
1个回答
0
投票

我们可以先将字符串解析为datetime对象:

from datetime import datetime, time

t1 = datetime.strptime(time_str1, '%H:%M')
t2 = datetime.strptime(time_str2, '%H:%M')

然后我们可以获得datetime对象之间的绝对差异:

dt = abs(t2 - t1)

我们现在可以计算小时数和分钟数:

t = time(dt.seconds // 3600, (dt.seconds // 60) % 60)

然后我们可以用strftime打印这个数字:

t.strftime('%H:%M')

或作为一种功能:

from datetime import datetime, time

def time_diff(time_str1, time_str2):
    t1 = datetime.strptime(time_str1, '%H:%M')
    t2 = datetime.strptime(time_str2, '%H:%M')
    dt = abs(t2 - t1)
    return time(dt.seconds // 3600, (dt.seconds // 60) % 60).strftime('%H:%M')

例如:

>>> time_diff('15:30', '11:00')
'04:30'
>>> time_diff('19:28', '12:25')
'07:03'
© www.soinside.com 2019 - 2024. All rights reserved.