2 回答
TA贡献1772条经验 获得超5个赞
最好像下面那样解析时间并访问日期时间属性以从解析的日期时间对象中获取时间组件
input_time = datetime.strptime(yourtimestring,'yourtimeformat')
input_seconds = input_time.second # for seconds
input_minutes = input_time.minute # for minutes
input_hours = input_time.hour # for hours
# Usage: input_time = datetime.strptime("07:00","%M:%S")
休息一下,你有datetime.timedelta办法组成持续时间。
new_time = initial_datetime + datetime.timedelta(hours=input_hours,minutes=input_minutes,seconds=input_seconds)
TA贡献1786条经验 获得超11个赞
您需要转换为 datetime 对象才能将 timedelta 添加到当前时间,然后将其返回到时间部分。
使用date.today()只是使用任意当前日期并将时间设置为您提供的时间。这允许您添加天数并将时钟重置为 00:00。
dt.time() 打印出您正在寻找的结果。
from datetime import date, datetime, time, timedelta
dt = datetime.combine(date.today(), time(7, 00)) + timedelta(hours=4)
print dt.time()
编辑: 从字符串中获取time='7:00'可以在冒号上拆分的内容,然后引用每个内容。
this_time = this_time.split(':') # make it a list split at :
this_hour = this_time[0]
this_min = this_time[1]
编辑2: 然后将它们重新组合在一起:
from datetime import date, datetime, time, timedelta
this_time = '7:00'
this_time = this_time.split(':') # make it a list split at :
this_hour = int(this_time[0])
this_min = int(this_time[1])
dt = datetime.combine(date.today(), time(this_hour, this_min)) + timedelta(hours=4)
print dt.time()
如果您已经有一个完整的日期可以使用,如评论中所述,您应该使用strptime将其转换为日期时间。我认为另一个答案会介绍如何使用它,所以我不打算举个例子。
添加回答
举报
