如何更改timedelta字符串转换格式?

问题描述 投票:0回答:2

我正在尝试以HH:MM:SS格式获取脚本的时间度量。 datetime.timedelta没有strftime功能。我想摆脱微秒指示。 durationtimedelta对象。

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
python datetime timedelta
2个回答
0
投票
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)

0
投票

您可以将底数除以一百万,然后再乘以一百万以消除毫秒:

print(duration // 1000000 * 1000000)

您也可以从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,以便在整数计算中将其变为10:] >

print(datetime.timedelta(duration.days, duration.seconds + bool(duration.microseconds)))
© www.soinside.com 2019 - 2024. All rights reserved.