在开始时间字符串中添加持续时间以获得结束时间?

时间:2019-01-30 10:56:19

标签: python string datetime time

我有一个名为startTime的字符串,我想添加一个duration(以分钟为单位)以获得一个finishTime

以下是一些示例数据:

startTime : 10:15

duration: 90

在python中,添加该持续时间以使finishTime11:45的最佳方法是什么?

非常感谢,感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:4)

尝试一下:

import datetime

d = datetime.datetime.strptime("10:12","%H:%m") + datetime.timedelta(minutes=90)
new = d.strftime('%H:%m')

new将是11:45

答案 1 :(得分:3)

我建议将pandas用于此类任务,因为它比直接使用datetime模块更直观。

import pandas as pd
startTime = '10:15'
duration = '90'
finishTime = (pd.to_datetime(startTime , format='%H:%M') 
              + pd.to_timedelta(duration + 'min')).strftime(format='%H:%M')

如Torxed和shmee所指出的那样,pandas不是内置模块,它很大,只有70MB左右,因此可能并不适合所有人。
但是由于熊猫是imho处理时间序列数据的最佳工具,并且由于该问题看起来像处理时间序列时通常需要的东西,因此我认为使用熊猫解决方案可能很有趣/有用。

答案 2 :(得分:1)

您可以使用pd.to_datetime来将字符串转换为日期时间对象,并使用pd.to_timedelta添加分钟。最后,使用strftime将日期时间转换为所需的格式:

import pandas as pd
(pd.to_datetime( '10:15', format='%H:%M') + pd.to_timedelta(90, unit='m')).strftime('%H:%M')
#'11:45'