说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除
作者:zhu6201976
一、需求
时间转换: X秒 --> 时:分:秒
输入:90秒 --> 00:01:30
输入:3661秒 --> 01:01:01
二、实现思路
1.直接计算(浮点数存在计算误差):
小时 = int( 总秒数 / 3600 )
分钟 = int( ( 总秒数 - 小时 * 3600 ) / 60 )
秒数 = 总秒数 - 小时 * 3600 - 分钟 * 60
2.利用Python内置库 time模块(100%精确 推荐)
三、代码实现
1.直接计算
import math
def deal_duration(duration: int) -> str:
"""
处理时长 example: 90 --> 00:01:30
TODO 浮点数存在计算误差
:param duration: int 时长 单位s
:return: str '00:01:30'
"""
hour = 3600
minute = 60
h_rest, h = math.modf(duration / hour)
h = '%02d' % int(h)
m_rest, m = math.modf(round(h_rest * minute, 6))
m = '%02d' % int(m)
s_rest, s = math.modf(m_rest * minute)
s = '%02d' % int(s)
ret = f'{h}:{m}:{s}'
return ret
ret = deal_duration(3661)
print(ret)
2.利用Python内置库 time模块
import time
def deal_duration(duration: int) -> str:
"""
处理时长 example: 90 --> 00:01:30
:param duration: int 时长 单位s
:return: str '00:01:30'
"""
return time.strftime('%H:%M:%S', time.gmtime(duration))
ret = deal_duration(3661)
print(ret)