我正在尝试以HH:MM:SS
格式获取脚本的时间度量。 datetime.timedelta
没有strftime
功能。我想摆脱微秒指示。 duration
是timedelta
对象。
import datetime
start = datetime.datetime.now()
for i in range(100000000):
pass
end = datetime.datetime.now()
duration = end - start
print(duration)
输出:
0:00:03.474106
但是我需要:
0:00:04
import datetime
start = datetime.datetime.now().replace(microsecond=0)
for i in range(100000000):
pass
end = datetime.datetime.now().replace(microsecond=0)
duration = end - start
print(duration)
您可以在未指定timedelta
属性的情况下从duration
创建新的milliseconds
对象。
print(datetime.timedelta(duration.days, duration.seconds))
但是如果0:00:04
的输入在3秒钟后没有超过半秒的标记,但仍希望按照0:00:03.474106
的预期输出始终将其四舍五入,则可以将1
添加到它,因为milliseconds
极不可能是0
:
print(datetime.timedelta(duration.days, duration.seconds + 1))
或者如果您真的想考虑milliseconds
可能是0
的可能性,则可以将milliseconds
转换为bool
,以便在整数计算中将其变为1
或0
:] >
print(datetime.timedelta(duration.days, duration.seconds + bool(duration.microseconds)))