Convierta datetime.time en datetime.timedelta en Python 3.4

Estoy tratando de convertir dos “duraciones”, sin embargo, actualmente estoy recibiendo un TypeError debido a que uno es datetime.timedelta y el otro es datetime.time :

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

¿Cuál es una manera eficiente de convertir un datetime.time a un datetime.timedelta ?

He comprobado los documentos y no hay ningún método incorporado para la conversión entre estos dos tipos.

datetime.time() no es una duración , es un punto en un día. Si desea interpretarlo como una duración, conviértalo a una duración desde la medianoche:

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

Manifestación:

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

Sin embargo, es posible que deba examinar cómo obtiene el objeto datetime.time() en primer lugar, ¿quizás haya una ruta más corta hacia un timedelta() desde los datos de entrada que tiene? No use datetime.time.strptime() para duraciones, por ejemplo.

Aquí hay una solución que he encontrado, aunque no es necesariamente eficiente:

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

Donde x es un objeto datetime.time .