Ich mache eine Berechnung der durchschnittlichen Zeit und ich möchte den Ergebnisdurchschnitt ohne Mikrosekunden anzeigen.Python timedelta entfernen Mikrosekunden
avg = sum(datetimes, datetime.timedelta(0))/len(datetimes)
Dank
Ich mache eine Berechnung der durchschnittlichen Zeit und ich möchte den Ergebnisdurchschnitt ohne Mikrosekunden anzeigen.Python timedelta entfernen Mikrosekunden
avg = sum(datetimes, datetime.timedelta(0))/len(datetimes)
Dank
die timedetla nehmen und seine eigenen Mikrosekunden entfernen, als Mikrosekunden und read-only-Attribut:
avg = sum(datetimes, datetime.timedelta(0))/len(datetimes)
avg = avg - datetime.timedelta(microseconds=avg.microseconds)
Sie Ihre eigene kleine Funktion machen kann, wenn es sich um eine wiederkehrende Notwendigkeit ist:
import datetime
def chop_microseconds(delta):
return delta - datetime.timedelta(microseconds=delta.microseconds)
Ich habe keine bessere Lösung gefunden.
Es sollte "Mikrosekunde" sein, soweit ich das beurteilen kann. – daviewales
sollte es "Mikrosekunden" sein. Beweis [hier] (http://pastebin.com/P4qH1G51) –
Es ist "Mikrosekunden" auf Timedelta-Objekte, aber "Mikrosekunde" auf Zeit und Datum-Zeit-Objekte. –
Wenn es nur für die Anzeige ist, diese Idee funktioniert:
avgString = str(avg).split(".")[0]
Die Idee ist, nur zu nehmen, was vor dem Punkt ist. Es wird wieder 01.23.45 für 01: 23: 45,1235
eine weitere Option, da timedetla Sie tun können:
avg = datetime.timedelta(seconds=math.ceil(avg.total_seconds()))
Sie die math.ceil()
ersetzen kann, mit math.round()
oder math.floor()
, kommt auf die Situation an.
Sie können die Elemente von Datetimes wie so ändern:
In [1]: datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
Out[1]: datetime.datetime(2017, 4, 28, 0, 0)
Was Datetimes 'ist ... eine Liste von timedeltas? Wenn ja, gibt die Summe ein timedelta-Objekt einschließlich Mikrosekunden zurück ... Was ist das Problem? – tdelaney
'avg.strftime ("% Y-% m-% d% H:% M:% S ")', aber es wird String zurückgegeben. –