Wie Entferne ich die Mikrosekunden von einer timedelta-Objekt?
Ich mache eine Berechnung der durchschnittlichen Zeit, und ich möchte zur Anzeige gebrachten Durchschnitt, ohne Mikrosekunden.
avg = sum(datetimes, datetime.timedelta(0)) / len(datetimes)
- Was ist "datetimes'... eine Liste von timedeltas? Wenn dem so ist, die Summe gibt eine timedelta-Objekt einschließlich der Mikrosekunden... also was ist das problem?
avg.strftime("%Y-%m-%d %H:%M:%S")
, aber es wird eine Zeichenkette zurückgeben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nehmen die timedetla und entfernen Sie Ihre eigenen Mikrosekunden, als Mikrosekunden und nur-lese-Attribut:
Können Sie Ihre eigene kleine Funktion, wenn es ist ein immer wiederkehrendes müssen:
Ich habe nicht eine bessere Lösung gefunden.
microsecond
, soweit ich das sagen kann.microseconds
. Der Beweis hiermicroseconds
auf timedelta Objekte, abermicrosecond
auf Zeit und datetime-Objekte.Wenn es nur für das display, diese Idee funktioniert :
Die Idee ist, nehmen Sie nur das, was vor dem Punkt.
Wird es wieder 01:23:45 für 01:23:45.1235
andere option gegeben timedetla Sie tun können:
Können Sie ersetzen die
math.ceil()
mitmath.round()
odermath.floor()
je nach situation.Fand ich diese für mich arbeiten:
Ausgabe:
Daran dachte ich nach der Suche in https://docs.python.org/3.2/library/datetime.html#timedelta-objects
Hoffe, das hilft!