Python >> Python-zelfstudie >  >> Python

Hoe verwijder ik de microseconden van een tijddelta-object?

Neem de tijddelta en verwijder zijn eigen microseconden, zoals microseconden en alleen-lezen attribuut:

avg = sum(datetimes, datetime.timedelta(0)) / len(datetimes)
avg = avg - datetime.timedelta(microseconds=avg.microseconds)

Je kunt je eigen kleine functie maken als het een terugkerende behoefte is:

import datetime

def chop_microseconds(delta):
    return delta - datetime.timedelta(microseconds=delta.microseconds)

Ik heb geen betere oplossing gevonden.


Als het alleen voor de weergave is, werkt dit idee:

avgString = str(avg).split(".")[0]

Het idee is om alleen te nemen wat er voor het punt is. Het zal 01:23:45 teruggeven voor 01:23:45.1235


een andere optie, gegeven tijddelta die je kunt doen:

avg = datetime.timedelta(seconds=math.ceil(avg.total_seconds()))

U kunt de math.ceil() . vervangen , met math.round() of math.floor() , afhankelijk van de situatie.