Python中如何让timedelta仅显示分钟和秒数
问题:调整timedelta输出格式,仅保留分钟和秒数
现有代码:
if (len(circles[0, :])) == 5: start = time.time() if (len(circles[0, :])) == 1: end = time.time() print(str(timedelta(seconds=end-start)))
当前输出:
0:01:03.681325
期望输出:
1:03
需要修改代码,让timedelta的输出仅保留分钟和秒数。
解决方案
不要直接将timedelta对象转为字符串,而是手动提取并格式化分钟和秒数,以下是两种可行方案:
方案1:兼容超1小时的场景(将小时换算为分钟)
如果计时可能超过1小时,这种方法会把所有时长统一换算为分钟数,搭配剩余秒数输出:
from datetime import timedelta import time if len(circles[0, :]) == 5: start = time.time() if len(circles[0, :]) == 1: end = time.time() delta = timedelta(seconds=end - start) total_minutes = int(delta.total_seconds() // 60) seconds = int(delta.total_seconds() % 60) print(f"{total_minutes}:{seconds:02d}")
比如2小时5分30秒会输出125:30,完全匹配你示例的1:03格式。
方案2:仅显示当前小时内的分钟(适用于时长不超1小时的场景)
如果确定计时不会超过1小时,可以直接使用timedelta的属性:
from datetime import timedelta import time if len(circles[0, :]) == 5: start = time.time() if len(circles[0, :]) == 1: end = time.time() delta = timedelta(seconds=end - start) print(f"{delta.minutes}:{delta.seconds:02d}")
这种方式下,1小时5分30秒会输出5:30,仅保留当前小时段内的分钟数。
内容的提问来源于stack exchange,提问作者Ethan0619
相关产品推荐
相关产品推荐

