Как преобразовать объект `datetime` в строку с временем и миллисекундами?

Для преобразования объекта datetime в строку с временем и миллисекундами в Python, можно использовать метод strftime():


  from datetime import datetime

  now = datetime.now()
  time_with_ms = now.strftime("%H:%M:%S.%f")

  print(time_with_ms)
  

В этом примере, %H - часы (24-часовой формат), %M - минуты, %S - секунды, а %f - микросекунды. Так как нужны миллисекунды, можно отрезать последние 3 цифры строки.


  from datetime import datetime

  now = datetime.now()
  time_with_ms = now.strftime("%H:%M:%S.%f")
  time_with_ms = time_with_ms[:-3]

  print(time_with_ms)
  

Для преобразования объекта datetime в строку с временем и миллисекундами в Python можно использовать метод strftime(). Этот метод принимает строку форматирования в качестве аргумента, которая определяет, как будет выглядеть результирующая строка.

Вот пример кода, демонстрирующий, как это сделать:


import datetime

now = datetime.datetime.now()

# Форматируем время с миллисекундами
time_with_milliseconds = now.strftime("%H:%M:%S.%f")

print(time_with_milliseconds)

Разберем строку форматирования "%H:%M:%S.%f":

  • %H: Час (24-часовой формат)
  • %M: Минуты
  • %S: Секунды
  • %f: Микросекунды (доли секунды). В Python strftime() отображает микросекунды, а не миллисекунды, поэтому отображается 6 цифр.

Если необходимо получить только миллисекунды, можно либо отрезать последние три символа от микросекундной части, либо разделить микросекунды на 1000:


import datetime

now = datetime.datetime.now()

# Способ 1: Обрезание строки
time_with_microseconds = now.strftime("%H:%M:%S.%f")
time_with_milliseconds = time_with_microseconds[:-3] #обрезаем последние 3 символа (микросекунды)

print(time_with_milliseconds)


# Способ 2: Арифметическое преобразование (если нужно число)
microseconds = now.microsecond
milliseconds = microseconds // 1000 # делим на 1000 чтобы получить миллисекунды
time_string = now.strftime("%H:%M:%S.") + str(milliseconds).zfill(3) # Дополняем нулями до 3 знаков

print(time_string)

Важно! Метод zfill(3) используется для добавления ведущих нулей к числу миллисекунд, чтобы оно всегда имело 3 цифры (например, "005", "050", "500"). Это гарантирует, что строка времени всегда будет иметь одинаковый формат.

Второй способ, когда микросекунды делятся на 1000, дает нам число миллисекунд, а не строку. Это полезно, если вам необходимо выполнять какие-либо математические операции с миллисекундами. Затем, результат преобразуется в строку и конкатенируется с остальной частью строки времени.

0