如何将秒转换为小时、分钟和秒?

732 投票
21 回答
681261 浏览
提问于 2025-04-15 11:12

我有一个函数,它返回的是以秒为单位的信息,但我需要把这些信息存储成小时:分钟:秒的格式。

在Python中,有没有简单的方法可以把秒转换成这种格式呢?

21 个回答

103

我不能说这是一种简单的方法(至少我记不住语法),但可以使用 time.strftime,这样可以更好地控制格式:

from time import strftime
from time import gmtime

strftime("%H:%M:%S", gmtime(666))
'00:11:06'

strftime("%H:%M:%S", gmtime(60*60*24))
'00:00:00'

gmtime 是用来把秒数转换成 strftime() 所需要的特殊元组格式。

注意:在23:59:59之后会被截断。

719

通过使用 divmod() 这个函数,它只进行一次除法运算,就能同时得到商和余数,你可以非常快速地得到结果,只需要进行两次数学运算:

m, s = divmod(seconds, 60)
h, m = divmod(m, 60)

然后使用 字符串格式化 将结果转换成你想要的输出格式:

print('{:d}:{:02d}:{:02d}'.format(h, m, s)) # Python 3
print(f'{h:d}:{m:02d}:{s:02d}') # Python 3.6+
1209

你可以使用 datetime.timedelta 这个功能:

>>> import datetime
>>> str(datetime.timedelta(seconds=666))
'0:11:06'

撰写回答