months minutes example python

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.