Я пытаюсь сделать что-то вроде этого:
time() + timedelta(hours=1)
однако Python не позволяет это, по-видимому, по уважительной причине.
Есть ли у кого-то простая работа?
Я пытаюсь сделать что-то вроде этого:
time() + timedelta(hours=1)
однако Python не позволяет это, по-видимому, по уважительной причине.
Есть ли у кого-то простая работа?
Решение находится в ссылка, которую вы предоставили в своем вопросе:
datetime.combine(date.today(), time()) + timedelta(hours=1)
Полный пример:
from datetime import date, datetime, time, timedelta
dt = datetime.combine(date.today(), time(23, 55)) + timedelta(minutes=30)
print dt.time()
Вывод:
00:25:00
Если вам стоит добавить другой файл/зависимость в ваш проект, я только что написал небольшой класс, который расширяет datetime.time
с возможностью делать арифметику. Если вы пройдете за полночь, он просто обернется вокруг:
>>> from nptime import nptime
>>> from datetime import timedelta
>>> afternoon = nptime(12, 24) + timedelta(days=1, minutes=36)
>>> afternoon
nptime(13, 0)
>>> str(afternoon)
'13:00:00'
Он доступен из PyPi как nptime
( "не-педантичное время" ), или на GitHub: https://github.com/tgs/nptime
Документация находится на http://tgs.github.io/nptime/
Это немного неприятно, но:
from datetime import datetime, timedelta
now = datetime.now().time()
# Just use January the first, 2000
d1 = datetime(2000, 1, 1, now.hour, now.minute, now.second)
d2 = d1 + timedelta(hours=1, minutes=23)
print d2.time()
Обход проблемы:
t = time()
t2 = time(t.hour+1, t.minute, t.second, t.microsecond)
Вы также можете опустить микросекунды, если вам не нужна такая точность.
Вы можете изменить время() на теперь(), чтобы он работал
from datetime import datetime, timedelta
datetime.now() + timedelta(hours=1)