Python 如何将毫秒转换为分钟:秒输出?

Python 如何将毫秒转换为分钟:秒输出?,python,datetime,time,milliseconds,Python,Datetime,Time,Milliseconds,我想转换毫秒并有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 你还有别的想法吗?或者我应该修改代码中的某些内容 编辑: 我用下面的代码解决了这个问题

我想转换毫秒并有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}')

如果您使用的是datetime,那么您正在寻找

“%M:%S”#分钟:秒
您可以在此处找到格式代码表:

然而,自己做数学可能更容易

>>毫秒=105000
>>>总秒数=整数(毫秒/1000)
>>>分钟=整数(总秒/60)
>>>秒=整数(总秒数-分钟*60)
>>>打印(“{}:{:02}”。格式(分、秒)
1:45

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

使用

如果您不想要首字母
00:
,请使用

print(dt.strftime('%M:%S'))
导入日期时间 >>>打印(datetime.timedelta(毫秒=3200)) 0:00:03.200000
使用简单的
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

你在乎一秒钟的剩余分数吗?您可能正在寻找
divmod
函数,它将
/
%
组合成一个单独的步骤:
divmod(130,60)=(2,10)
。啊-这得到了另一半-实际上,它们应该在创建过程中指定参数
。时间(分=foo,秒=bar)
!这可能是最明智的选择,但没有说明如何格式化它!
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