我正在尝试以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()
for i in range(100000000):
pass
end = datetime.datetime.now()
duration = end - start
duration = duration - datetime.timedelta(microseconds=duration.microseconds)
print(duration)
[如果只想消除持续时间的毫秒部分,则可以将底数除以一百万,然后再乘以一百万:
print(duration // 1000000 * 1000000)
您也可以从timedelta
创建一个新的duration
对象,而无需指定milliseconds
属性。
print(datetime.timedelta(duration.days, duration.seconds))
但是,如果您希望它始终如根据0:00:04
的预期输出所建议的那样四舍五入,则可以简单地将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)))