如何合并日期和时间?

时间:2019-04-23 08:10:35

标签: python datetime

我想在日期时间添加一个时间。我的初始日期时间是:initial_datetime='2015-11-03 08:05:22'是字符串,而this_hourthis_min也是字符串。我使用:

time='-7:00'
time = time.split(':')
this_hour = time[0]
this_min = time[1]
initial_datetime='2015-11-03 08:05:22'
new_date = datetime.combine(initial_datetime, time(this_hour, this_min))  
           + timedelta(hours=4)

但是出现错误:

  

'str'对象不可调用。

我想要的输出是initial_datetime加上我的时间(在这种情况下为-7小时),然后加上4小时。因此,在我的示例中,新日期应为“ 2015-11-03 05:05:22”。

1 个答案:

答案 0 :(得分:0)

datetime.combine通常用于将date对象与time对象组合在一起,而不是递增或递减datetime对象。在您的情况下,您需要将日期时间字符串转换为datetime对象,并将时间字符串的各部分转换为整数,以便可以使用timedelta将其添加到日期时间。顺便说一句,请谨慎使用与导入冲突的变量名,例如time

from datetime import datetime, timedelta

dtstr = '2015-11-03 08:05:22'
tstr = '-7:00'
hours, minutes = [int(t) for t in tstr.split(':')]

dt = datetime.strptime(dtstr, '%Y-%m-%d %H:%M:%S') + timedelta(hours=hours+4, minutes=minutes)
print(dt)
# 2015-11-03 05:05:22