minutes - python time+timedelta equivalente
timedelta python 3 (5)
Esto es un poco desagradable, pero:
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()
Estoy tratando de hacer algo como esto:
time() + timedelta(hours=1)
sin embargo, Python no lo permite , aparentemente por una buena razón.
¿Alguien tiene un trabajo simple?
Relacionado:
La solución está en el enlace que proporcionó en su pregunta:
datetime.combine(date.today(), time()) + timedelta(hours=1)
Ejemplo completo:
from datetime import date, datetime, time, timedelta
dt = datetime.combine(date.today(), time(23, 55)) + timedelta(minutes=30)
print dt.time()
Salida:
00:25:00
Puede cambiar el tiempo () hasta ahora () para que funcione
from datetime import datetime, timedelta
datetime.now() + timedelta(hours=1)
Si vale la pena agregar otro archivo / dependencia a su proyecto, acabo de escribir una pequeña clase pequeña que extienda datetime.time
con la capacidad de hacer aritmética. Si pasas la medianoche, simplemente se envuelve:
>>> 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''
Está disponible desde PyPi como nptime
("tiempo no pedante"), o en GitHub: https://github.com/tgs/nptime
La documentación está en http://tgs.github.io/nptime/
Solución:
t = time()
t2 = time(t.hour+1, t.minute, t.second, t.microsecond)
También puede omitir los microsegundos, si no necesita mucha precisión.