如何舍入datetime()?

2024-09-19 20:26:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做的是执行时间增量运算,但是将时间舍入到分秒(我不确定这个词是否存在,但是下面的例子应该是不言自明的),而不是微秒。你知道吗

from datetime import datetime
import time

tick = datetime.now()
time.sleep(1.5)
tock = datetime.now()
time.sleep(2.1)
tock2 = datetime.now()
diff1 = tock-tick
diff2 = tock2-tick
diff1 #0:00:01.500914
diff2 #0:00:03.601836

我希望diff1输出分别是0:00:01.50,diff20:00:03.60。但是我不想格式化结果,我想用滴答声来格式化我记录的时间值,基本上是为了把它们四舍五入(实际上只是删掉点后面两位数后面的所有内容)。原因是,在我的程序中的某个时候,我想比较两个差异(作为取整的时间增量),只有这样我才想把结果转换成字符串并格式化它。你知道吗

我试过这样做

tick = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-4]
time.sleep(1.5)
tock = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-4]
diff1 = tock-tick
#TypeError: unsupported operand type(s) for -: 'str' and 'str'

但不起作用,因为它已经将时间转换为字符串。。。你知道吗


Tags: 字符串importdatetimetime时间sleep增量now
1条回答
网友
1楼 · 发布于 2024-09-19 20:26:19

您可以简单地从timedelta中提取^{},并对其进行四舍五入,构建一个新的timedelta:

from datetime import datetime, timedelta
import time

tick = datetime.now()
time.sleep(1.5)
tock = datetime.now()
diff = tock-tick
diff = timedelta(seconds=round(diff.total_seconds(), 2))
print(diff)  # 0:00:01.500000

相关问题 更多 >