Python format timedelta greater than 24 hours for display only containing hours?

后端 未结 3 561
春和景丽
春和景丽 2020-11-30 14:18

How do I format timedelta greater than 24 hours for display only containing hours in Python?

>>> import datetime
>>> td = datetime.timedelt         


        
相关标签:
3条回答
  • 2020-11-30 14:51

    May be defining your class that inherits datetime.timedelta will be a little more elegant

    class mytimedelta(datetime.timedelta):
       def __str__(self):
          seconds = self.total_seconds()
             hours = seconds // 3600
             minutes = (seconds % 3600) // 60
             seconds = seconds % 60
             str = '{}:{}:{}'.format(int(hours), int(minutes), int(seconds))
             return (str)
    
    td = mytimedelta(hours=36, minutes=10, seconds=10)
    
    >>> str(td)
    prints '36:10:10'
    
    0 讨论(0)
  • 2020-11-30 14:51
    td = datetime.timedelta(hours=36, minutes=10, seconds=10)
    seconds = td.total_seconds()
    result = '%d:%02d:%02d' % (seconds / 3600, seconds / 60 % 60, seconds % 60)
    
    0 讨论(0)
  • 2020-11-30 14:51
    from datetime import timedelta
    from babel.dates import format_timedelta
    delta = timedelta(days=6)
    format_timedelta(delta, locale='en_US')
    u'1 week'
    

    More info: http://babel.pocoo.org/docs/dates/

    This will format your interval according to a given locale. I guess it is better, because it will always use the official format for your locale.

    Oh, and it has a granularity parameter. (I hope I could understand your question...)

    0 讨论(0)
提交回复
热议问题