Я хочу преобразовать миллисекунды и получить результат 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)
. — person Wiktor_B schedule 07.05.2021
А как насчет простого
divmod
? Таким образом, минуты ›59 возможны и импорт не требуется, напримерb
— это минуты, аc
— секунды. Но аргументы в пользуdatetime.time()
равныhours, minutes, seconds
. Итак, вы указываете минуты в параметреhours
и секунды в параметреminutes
.Использовать
Если вам не нужен начальный
00:
, используйтеАх, вот и вторая половина — реально они должны указать аргументы
.time(minutes=foo, seconds=bar)
во время создания! подпись класса — person Wiktor_B; 07.05.2021Если вы используете datetime, вы ищете
.strftime()
метод!Вы можете найти таблицу кодов форматов здесь: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes
Однако, вероятно, проще просто посчитать самостоятельно.