How to get total hours and minutes for timedelta in Python

后端 未结 3 576
孤街浪徒
孤街浪徒 2020-12-10 01:07

How do I return or turn a timedelta, which is bigger than 24 hours, into an object containing the total hours and minutes (for example, 26:30) instead of \"1 day, 2:30\"?

相关标签:
3条回答
  • 2020-12-10 01:36

    Completing the answer of Visser using timedelta.total_seconds() :

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

    Once we got a timedelta object:

    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
    
    0 讨论(0)
  • 2020-12-10 01:42

    You can use total_seconds() to compute the number of seconds. This can then be turned into minutes or hours:

    >>> datetime.timedelta(days=3).total_seconds()
    259200.0
    
    0 讨论(0)
  • 2020-12-10 01:47
    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
    
    0 讨论(0)
提交回复
热议问题