Steven D'Aprano <st...@pearwood.info> writes:

> On Thu, 26 May 2016 03:28 pm, Zachary Ware wrote:
>
>> On Thu, May 26, 2016 at 12:16 AM, Steven D'Aprano
>> <steve+comp.lang.pyt...@pearwood.info> wrote:
>>> I have a timedelta object, and I want to display it in a nice
>>> human-readable format like 03:45:17 for "three hours, forty five minutes,
>>> 17 seconds".
>>>
>>> Is there a standard way to do this?
>>
>>    >>> timedelta(100)
>>    datetime.timedelta(100)
>>    >>> str(timedelta(seconds=100))
>>    '0:01:40'
>>    >>> str(timedelta(hours=100))
>>    '4 days, 4:00:00'
>>
>> (I recently spent *way* too long trying to figure out how to properly
>> format the thing before being reminded that a plain str call gives
>> exactly what I was after.)
>
> Thanks Zach. Unfortunately, the format is not quite how I want it, so I
> guess I'll have to extract the H:M:S fields manually from the seconds.

It might be useful if timedelta were to get an isoformat() method. ISO
8601 specifies formats for durations; most people are familiar only with
the date amd time formats. There are variations available but PnDTnHnMnS
is probably the best. The biggest timedelta unit is days. Years and
months are not appropriate.

-- 
Pete Forman
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to