gpt4 book ai didi

python - 如何在 python 中以两位数 (00.00.00) 获取小时格式?

转载 作者:行者123 更新时间:2023-12-05 06:59:32 25 4
gpt4 key购买 nike

下面是我在我的一个应用程序中使用的示例代码。我希望默认小时格式为 00(例如 02:30:35),这里我得到的是 0:00:03.011445 所以我使用的是 strftime 但我在那里遇到了另一个异常。请指导。

from datetime import datetime
from datetime import time
from time import strftime
import time

start = datetime.now()
time.sleep(3)
end = datetime.now()

print(start)
print(end)
dt = (end - start)
print('Defual Time:', dt)

print('New Format DateTime', dt.strftime("%m/%d/%y %H:%M:%S"))

我的输出低于输出。

2020-10-17 19:15:36.831928
2020-10-17 19:15:39.843373
Defualt Time: 0:00:03.011445
Traceback (most recent call last):
File "D:/New folder/IoT2.py", line 30, in <module>
print('New Format DateTime', dt.strftime("%m/%d/%y %H:%M:%S"))
AttributeError: 'datetime.timedelta' object has no attribute 'strftime'

最佳答案

您收到属性错误的原因是因为 strftime 属于 datetime.datetime 类(来自 datetime.now())而不是 datetime.timedelta 类(来自 end-start)。

相反,您实际上可以使用 total_seconds() 方法来获取时差的秒数,并根据需要将其格式化为字符串。

编辑:您可以使用 timedeltamicroseconds 属性来计算您的毫秒数并将其格式化以显示。

from datetime import datetime
from datetime import time
from time import strftime
import time

start = datetime.now()
time.sleep(3)
end = datetime.now()

print(start)
print(end)
dt = (end - start)
print('Default Time:', dt)

milliseconds = int(round(dt.microseconds/1000, 1))

dt = int(dt.total_seconds())

print('New format: {:02}:{:02}:{:02}:{:03}'.format(dt // 3600, dt % 3600 // 60, dt % 60, milliseconds))

此输出将是:

2020-10-19 13:02:13.861103
2020-10-19 13:02:16.863268
Default Time: 0:00:03.002165
New format: 00:00:03:002

关于python - 如何在 python 中以两位数 (00.00.00) 获取小时格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64403223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com