Another surprise from the datetime module

Mark Lawrence breamoreboy at yahoo.co.uk
Thu Jan 30 13:03:17 EST 2014


On 30/01/2014 17:32, Roy Smith wrote:
> I was astounded just now to discover that datetime.timedelta doesn't
> have a replace() method (at least not in Python 2.7).  Is there some
> fundamental reason why it shouldn't, or is this just an oversight?
>
> My immediate use case was wanting to print a timedelta without the
> fractions of seconds.  The most straight-forward is:
>
> print td.replace(microseconds=0)
>
> but that doesn't work.  Yes, I know I can use strftime, but (as I've
> mentioned before :-)), that requires dragging up the reference page to
> figure out what grotty little format string I need.  The brute-force
>
> print timedelta(seconds=int(td.total_seconds()))
>
> is easier than that, but plain old replace() would be even easier.
>

datetime.timedelta doesn't have a strftime method either.

AttributeError: 'datetime.timedelta' object has no attribute 'strftime'

-- 
My fellow Pythonistas, ask not what our language can do for you, ask 
what you can do for our language.

Mark Lawrence




More information about the Python-list mailing list