Cómo obtener el total de horas y minutos para timedelta en Python

¿Cómo devuelvo o convierto un timedelta, que es más grande que 24 horas, en un objeto que contiene el total de horas y minutos (por ejemplo, 26:30) en lugar de “1 día, 2:30”?

Puedes usar total_seconds() para calcular el número de segundos. Esto se puede convertir en minutos u horas:

 >>> datetime.timedelta(days=3).total_seconds() 259200.0 

Completando la respuesta de Visser usando timedelta.total_seconds() :

 import datetime duration = datetime.timedelta(days = 2, hours = 4, minutes = 15) 

Una vez que conseguimos un objeto timedelta :

 totsec = duration.total_seconds() h = totsec//3600 m = (totsec%3600) // 60 sec =(totsec%3600)%60 #just for reference print "%d:%d" %(h,m) Out: 52:15 
 offset_seconds = timedelta.total_seconds() if offset_seconds < 0: sign = "-" else: sign = "+" # we will prepend the sign while formatting if offset_seconds < 0: offset_seconds *= -1 offset_hours = offset_seconds / 3600.0 offset_minutes = (offset_hours % 1) * 60 offset = "{:02d}:{:02d}".format(int(offset_hours), int(offset_minutes)) offset = sign + offset