Вам необходимо преобразовать объект 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()
Edit:
Чтобы получить из строки 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 . Я думаю, что другой ответ описывает, как его использовать, поэтому я не собираюсь приводить пример.