Ответ 1
Используйте datetime.datetime()
, затем добавьте или вычтите datetime.timedelta()
экземпляры.
>>> import datetime
>>> t = datetime.datetime.now()
>>> t - datetime.timedelta(hours=1, minutes=10)
datetime.datetime(2012, 12, 26, 17, 18, 52, 167840)
timedelta()
арифметика не поддерживается для объектов datetime.time()
; если вам нужно использовать смещения из существующего объекта datetime.time()
, просто используйте datetime.datetime.combine()
для создания экземпляра datetime.datetime()
, выполните ваши вычисления и "извлеките" время снова с помощью метода .time()
:
>>> t = datetime.time(1, 2)
>>> dt = datetime.datetime.combine(datetime.date.today(), t)
>>> dt
datetime.datetime(2012, 12, 26, 1, 2)
>>> dt -= datetime.timedelta(hours=5)
>>> dt.time()
datetime.time(20, 2)