Para mí, la solución más elegante, sin tener que recurrir a bibliotecas externas como dateutil o analizar manualmente la entrada, es utilizar el poderoso strptime
método de análisis de cadenas de datetime .
from datetime import datetime, timedelta
# we specify the input and the format...
t = datetime.strptime("05:20:25","%H:%M:%S")
# ...and use datetime's hour, min and sec properties to build a timedelta
delta = timedelta(hours=t.hour, minutes=t.minute, seconds=t.second)
Después de esto, puede usar su objeto timedelta normalmente, convertirlo en segundos para asegurarse de que hicimos lo correcto, etc.
print(delta)
assert(5*60*60+20*60+25 == delta.total_seconds())
d
días,h
horas,m
minutos ys
segundos utilizando una línea (después de importardatetime
):datetime.timedelta(days = d, hours = h, minutes=m, seconds=s)
.