A datetime.timedelta
соответствует разнице между двумя датами, а не самой датой. Это выражается только в днях, секундах и микросекундах, так как более крупные единицы времени, такие как месяцы и годы, не разлагаются чисто (это 30 дней 1 месяц или 0,9677 месяца?).
Если вы хотите конвертировать a timedelta
в часы и минуты, вы можете использовать метод total_seconds()
, чтобы получить общее количество секунд, а затем выполнить некоторую математику:
x = datetime.timedelta(1, 5, 41038) # Interval of 1 day and 5.41038 seconds
secs = x.total_seconds()
hours = int(secs / 3600)
minutes = int(secs / 60) % 60