我想在日期时间添加一个时间。我的初始日期时间是:initial_datetime='2015-11-03 08:05:22'
是字符串,而this_hour
和this_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”。
答案 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