Convert datetime.time to datetime.timedelta in Python 3.4

I am trying to convert two "durations", however currently I am getting TypeErrorbecause one of them is datetime.timedeltaand one is datetime.time:

TypeError: unorderable types: datetime.time() <= datetime.timedelta()

What is an effective way to convert datetime.timeto datetime.timedelta?

I checked docs and there is no built-in method for converting between these two types.

+4
source share
2 answers

datetime.time()not a duration, it is a point per day. If you want to interpret it as a duration, then convert it to midnight from midnight:

datetime.combine(date.min, timeobj) - datetime.min

Demo:

>>> from datetime import datetime, date, time
>>> timeobj = time(12, 45)
>>> datetime.combine(date.min, timeobj) - datetime.min
datetime.timedelta(0, 45900)

, , datetime.time(), , , timedelta() , ? datetime.time.strptime() , .

+11

, :

import datetime
x = datetime.timedelta(hours=x.hour, minutes=x.minute, seconds=x.second, microseconds=x.microsecond)

x - datetime.time.

+2

Source: https://habr.com/ru/post/1627567/


All Articles