【问题标题】:How to convert milliseconds to minutes:seconds output? [duplicate]如何将毫秒转换为分钟:秒输出? [复制]
【发布时间】:2021-07-29 22:51:15
【问题描述】:

我想转换 毫秒 并获得 2:00 输出。 它应该看起来像歌曲的持续时间。

我正在尝试使用此代码:

import datetime

seconds = milliseconds/1000
b = int((seconds % 3600)//60)
c = int((seconds % 3600) % 60)
dt = datetime.time(b, c)
print(dt)

>>> 02:30:00

您还有其他想法吗?或者,也许我应该更改我的代码中的某些内容。

编辑: 我用下面的代码解决了这个问题

    ms = 194000
    seconds, ms = divmod(ms, 1000)
    minutes, seconds = divmod(seconds, 60)
    print(f'{int(minutes):01d}:{int(seconds):02d}')

【问题讨论】:

  • 你关心剩余的几分之一秒吗?您可能正在寻找divmod 函数,它将//% 合并为一个步骤:divmod(130, 60) == (2, 10)

标签: python datetime time milliseconds


【解决方案1】:

使用简单的divmod 怎么样?这样,分钟 > 59 是可能的,并且不需要导入,例如

milliseconds = 86400001 # a day and a millisecond... long song.

seconds, milliseconds = divmod(milliseconds, 1000)
minutes, seconds = divmod(seconds, 60)

print(f'{int(minutes):02d}:{int(seconds):02d}.{int(milliseconds):03d}')
# 1440:00.001

【讨论】:

    【解决方案2】:

    b 是分钟,c 是秒。但是datetime.time() 的参数是hours, minutes, seconds。因此,您将分钟放入 hours 参数中,将秒放入 minutes 参数中。

    使用

    dt = datetime.time(0, b, c)
    print(dt)
    >>> 00:02:30
    

    如果您不想要初始的00:,请使用

    print(dt.strftime('%M:%S'))
    

    【讨论】:

    • 啊-得到了另一半-实际上,他们应该在创建过程中指定参数.time(minutes=foo, seconds=bar)class signature
    【解决方案3】:
    >>> import datetime
    >>> print(datetime.timedelta(milliseconds=3200))
    0:00:03.200000
    

    【讨论】:

    • 这可能是最明智的选择,但没有说明如何格式化!
    【解决方案4】:

    如果您使用日期时间,则您正在寻找.strftime() method

    "%M:%S"  # minutes:seconds
    

    您可以在此处找到格式代码表:https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes

    但是,自己做数学可能更容易

    >>> milliseconds  = 105000
    >>> total_seconds = int(milliseconds / 1000)
    >>> minutes       = int(total_seconds / 60)
    >>> seconds       = int(total_seconds - minutes * 60)
    >>> print("{}:{:02}".format(minutes, seconds))
    1:45
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 2014-02-13
      • 2012-09-27
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 2022-12-31
      相关资源
      最近更新 更多