Dla mnie najbardziej eleganckim rozwiązaniem, bez konieczności uciekania się do zewnętrznych bibliotek, takich jak dateutil lub ręcznego analizowania danych wejściowych, jest użycie potężnej metody analizy ciągów datetimestrptime
.
from datetime import datetime, timedelta
t = datetime.strptime("05:20:25","%H:%M:%S")
delta = timedelta(hours=t.hour, minutes=t.minute, seconds=t.second)
Następnie możesz normalnie używać obiektu timedelta, przekonwertować go na sekundy, aby upewnić się, że zrobiliśmy właściwą rzecz itp.
print(delta)
assert(5*60*60+20*60+25 == delta.total_seconds())
d
dni,h
godzin,m
minut is
sekund, stosując jedną linię (po imporciedatetime
)datetime.timedelta(days = d, hours = h, minutes=m, seconds=s)
.