我试图在Python中找到两次之间的区别。保证时间在同一天。
#For example
s1 = '13:00'
s2 = '12:58'
这两次之间的差异应该是2分钟。输出应为:2
这是我的代码:
from datetime import datetime
s1 = '13:00'
s2 = '12:58'
FMT = '%H:%M'
tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT)
print(tdelta)
但它返回:
-1 day, 23:58:00
我如何解决这个问题并将时间作为:2
答案 0 :(得分:3)
您可以尝试使用abs
作为结果,例如abs(datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT))
:
from datetime import datetime
s1 = '13:00'
s2 = '12:58'
FMT = '%H:%M'
tdelta = abs(datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT))
print(tdelta)
结果:
0:02:00
正如下面评论中所建议的那样,如果您特别想要minutes
中的差异,可以在.total_seconds()/60
中使用tdelta
:
from datetime import datetime
s1 = '13:00'
s2 = '12:58'
FMT = '%H:%M'
tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT)
minutes_difference = abs(tdelta.total_seconds()/60)
print(minutes_difference)
结果:
2.0
答案 1 :(得分:2)
Here我喜欢这个人是怎么做的
还有一些代码段
来自datetime import datetime
from dateutil.relativedelta import relativedelta
t_a = datetime.now()
t_b = datetime.now()
def diff(t_a, t_b):
t_diff = relativedelta(t_b, t_a) # later/end time comes first!
return '{h}h {m}m {s}s'.format(h=t_diff.hours, m=t_diff.minutes, s=t_diff.seconds)
答案 2 :(得分:0)
您可以使用Python pandas库:
import pandas as pd
time_1 = pd.Timestamp('13:00')
time_2 = pd.Timestamp('12:58')
delta = time_1 - time_2
print(delta)
Timestamp()方法允许您创建一个简单的时间戳。这是你的输出:
0 days 00:02:00
除非您另行指定,否则时间戳在同一天。