Python 将timedelta格式更改为仅显示分钟和秒
我想更改timedelta打印的格式Python 将timedelta格式更改为仅显示分钟和秒,python,Python,我想更改timedelta打印的格式 end_time = time() r_time = (end_time - start_time) m = "{}".format(str(timedelta(seconds=r_time))) 目前我的时间是00:00:00,我想改为00.00,只需几分钟和几秒钟在使用timedelta进行格式化字符串转换方面,您做不了多少工作。您可以将其转换为字符串并获取最后5个字符: >>> r_tim
end_time = time()
r_time = (end_time - start_time)
m = "{}".format(str(timedelta(seconds=r_time)))
目前我的时间是00:00:00,我想改为00.00,只需几分钟和几秒钟在使用timedelta进行格式化字符串转换方面,您做不了多少工作。您可以将其转换为字符串并获取最后5个字符:
>>> r_time = 1000
>>> str(timedelta(seconds=r_time))[-5:]
'16:40'
其他一些不太老套的方法也存在,比如以下不需要使用timedelta的方法:
我被这个诱惑了:
>>> r_time = 1000
>>> f'{r_time//60:02}:{r_time%60:02}'
'16:40'
但接下来会发生这样的情况:
>>> r_time = 3600
>>> f'{r_time//60:02}:{r_time%60:02}'
'60:00'
找到了另一个解决方案
r_time = (end_time - start_time)
seconds = abs(int(r_time))
minutes, seconds = divmod(seconds, 60)
times = '%i.%i' % (minutes, seconds)
这正是我想要的格式
00.00请从下一页重复和。堆栈溢出不是为了替换现有的文档和教程。timedelta格式记录得相当好;我们希望你将这些知识融入到你的问题中。你想/需要将小时部分转换为分钟,还是干脆放弃它?@mhawke干脆放弃它,只需要分钟、秒和秒。作为分隔符,这里有很多信息:@mar24n:您应该添加您的divmod解决方案作为答案。当r_time>3599时会发生什么?好问题:,但在我的使用案例中,r_time永远不会大于1800>>f'{r_time//60}:{r_time%60}''16:40',这看起来不错,但不幸的是,在我的例子中,我不能将fstring与Micropython一起使用
r_time = (end_time - start_time)
seconds = abs(int(r_time))
minutes, seconds = divmod(seconds, 60)
times = '%i.%i' % (minutes, seconds)