Попробуйте что-то вроде этого:
>>> import datetime
>>> my_time = datetime.datetime.strptime('04:05', '%H:%M')
>>> my_time
datetime.datetime(1900, 1, 1, 4, 5)
>>> offset_str = '-0100'
>>> offset = datetime.timedelta(hours=int(offset_str.lstrip('-')[:2]), minutes=int(offset_str.lstrip('-')[2:])) * (-1 if offset_str.startswith('-') else 1)
>>> offset
datetime.timedelta(-1, 82800)
>>> my_time + offset
datetime.datetime(1900, 1, 1, 3, 5)
>>> (my_time + offset).time()
datetime.time(3, 5)
Короче говоря:
>>> import datetime
>>> my_time = datetime.datetime.strptime('04:05', '%H:%M')
>>> offset_str = '-0100'
>>> offset = datetime.timedelta(hours=int(offset_str.lstrip('-')[:2]), minutes=int(offset_str.lstrip('-')[2:])) * (-1 if offset_str.startswith('-') else 1)
>>> (my_time + offset).time()
datetime.time(3, 5)