平均時間を計算し、結果の平均をマイクロ秒なしで表示したいと思います。
avg = sum(datetimes, datetime.timedelta(0)) / len(datetimes)
Timedetlaを取得し、マイクロ秒と読み取り専用属性として、独自のマイクロ秒を削除します。
avg = sum(datetimes, datetime.timedelta(0)) / len(datetimes)
avg = avg - datetime.timedelta(microseconds=avg.microseconds)
繰り返し必要な場合は、独自の小さな機能を作成できます。
import datetime
def chop_microseconds(delta):
return delta - datetime.timedelta(microseconds=delta.microseconds)
より良い解決策は見つかりませんでした。
ディスプレイのみの場合、このアイデアは機能します:
avgString = str(avg).split(".")[0]
アイデアは、ポイントの前にあるものだけを取ることです。 1:23:45を返します1:23:45.1235
別のオプション、timedetlaが与えられた場合:
_avg = datetime.timedelta(seconds=math.ceil(avg.total_seconds()))
_
状況に応じて、math.ceil()
をmath.round()
またはmath.floor()
に置き換えることができます。
私はこれが私のために働くことがわかりました:
start_time = datetime.now()
some_work()
end time = datetime.now()
print str(end_time - start_time)[:-3]
出力:
0:00:01.955
https://docs.python.org/3.2/library/datetime.html#timedelta-objects で検索した後、私はこれについて考えました
お役に立てれば!