Python 如何将毫秒转换为分钟:秒输出?
我想转换毫秒并有2:00输出。 它应该看起来像歌曲的持续时间 我尝试使用以下代码: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 你还有别的想法吗?或者我应该修改代码中的某些内容 编辑: 我用下面的代码解决了这个问题
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