【问题标题】:How to convert seconds to HH:MM:SS format without failing if hour more than 24如果小时超过 24,如何将秒转换为 HH:MM:SS 格式而不失败
【发布时间】:2020-09-12 22:38:23
【问题描述】:

如果小时大于24hrs,我需要将seconds 转换为HH:MM:SS 格式而不会失败。

04:32:1826:23:37

这是我尝试过的:

import time

cd = time.time()

while True:
    # Count seconds
    te = int(time.time()-cd, 0)

    # Print the secs
    print('Time elapsed:', te, 'secs')
    time.sleep(1)

这段代码打印出这个结果:

Time elapsed 1.0 secs
Time elapsed 2.0 secs
...

但我想要这个结果:

Time elapsed 00:00:01 secs
Time elapsed 00:00:02 secs
...

如果小时大于 24,程序必须运行并打印如下内容:

Time elapsed: 28:34:35
Time elapsed: 28:34:36
...

希望你能帮忙。

【问题讨论】:

  • 使用 datetime.Duration 并将 24 倍的天数添加到要打印的值?

标签: python arrays string datetime time


【解决方案1】:

您可以使用divmod 轻松地将秒数分解为 h、m、s

def to_hms(s):
    m, s = divmod(s, 60)
    h, m = divmod(m, 60)
    return '{}:{:0>2}:{:0>2}'.format(h, m, s)
>>> to_hms(90127)
'25:02:07'

【讨论】:

  • 你应该使用'{:0>2}:{:0>2}:{:0>2}'来获得00:00:01作为OP的愿望
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
相关资源
最近更新 更多