Another surprise from the datetime module

Roy Smith roy at panix.com
Thu Jan 30 12:32:31 EST 2014


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.



More information about the Python-list mailing list