在python中查找两种时间格式之间的持续时间?

时间:2018-05-31 06:03:15

标签: python

我有两次这样的事 08:00:00 - 10:00:00 想要在两分钟内计算这两次的持续时间? 需要回答像 120分钟

4 个答案:

答案 0 :(得分:0)

from datetime import datetime
time1 = '08:00:00'
time2 = '10:00:00' 
format = '%H:%M:%S'
tdelta = datetime.strptime(time2, format) - datetime.strptime(time1, format)

答案 1 :(得分:0)

对于日期时间变量,您应该使用pendulum。安装pendulum并导入它。然后你的代码就像

import pendulum
duration = '08:00:00 - 10:00:00'
duration = duration.split("-")
start = pendulum.parse(duration[0].strip())
finish = pendulum.parse(duration[1].strip())
minutes = (finish - start).in_minutes()
print(minutes)

输出:

120

答案 2 :(得分:0)

from datetime import datetime

time_local = datetime.now()
time_utc = datetime.utcnow()

print(time_local) # 2018-05-31 08:15:18.303388
print(time_utc)   # 2018-05-31 06:15:18.303388

time_delta = time_utc - time_local
print(repr(time_delta)) # datetime.timedelta(-1, 79200)

time_delta_in_hours = int(time_delta.total_seconds() / 3600)
print(time_delta_in_hours)  # -2

如果你想知道如何转换像" 08:00:00"到datetime对象,请参阅Suhas Bachhav post above

有关timedelta对象的更多信息,请参阅official documentation

答案 3 :(得分:0)

您可以执行以下程序:

import datetime

time_1 = datetime.datetime(2018, 5, 5, 12, 5, 1)
time_2 = datetime.datetime(2018, 5, 5, 14, 5, 1)

new_time = time_2 - time_1
seconds = new_time.total_seconds()
time = seconds / 60
print(int(time))

时差是两个小时,类似于你所要求的。 python 2.7或更高版本中的timedelta对象具有总秒数方法。因此,在减去两次之后,你会得到一个timedelta对象。你可以对它执行total_seconds()方法,然后明显除以60得到分钟。然后,您可以打印该结果,您将找到两次之间的总分钟数:

120