How do I remove the microseconds from a timedelta object?
If it is just for the display, this idea works :
avgString = str(avg).split(".")[0]
The idea is to take only what is before the point. It will return 01:23:45 for 01:23:45.1235
another option, given timedelta you can do:
avg = datetime.timedelta(seconds=math.ceil(avg.total_seconds()))
You can replace the math.ceil()
, with math.round()
or math.floor()
, depending on the situation.
Take the timedelta and remove its own microseconds, as microseconds and read-only attribute:
avg = sum(datetimes, datetime.timedelta(0)) / len(datetimes)
avg = avg - datetime.timedelta(microseconds=avg.microseconds)
You can make your own little function if it is a recurring need:
import datetime
def chop_microseconds(delta):
return delta - datetime.timedelta(microseconds=delta.microseconds)
I have not found a better solution.
c -= timedelta(microseconds=c.microseconds)