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

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

Пример:
  
  from datetime import datetime

  dt_object = datetime.now() # Получаем текущее время

  # Форматируем в строку
  formatted_string = dt_object.strftime("%Y-%m-%d %H:%M:%S")
  print(formatted_string)

  # Преобразуем строку обратно в datetime
  new_dt_object = datetime.strptime(formatted_string, "%Y-%m-%d %H:%M:%S")
  print(new_dt_object)
  
  

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

Пример:


import datetime

# Исходный datetime объект
dt = datetime.datetime(2023, 10, 27, 10, 30, 0)

# Перевод в строку с использованием strftime()
# Формат: год-месяц-день часы:минуты:секунды
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(f"Строка в формате YYYY-MM-DD HH:MM:SS: {formatted_dt}") # Вывод: 2023-10-27 10:30:00


# Преобразование строки обратно в datetime объект с использованием strptime()
# Пример: преобразование из формата day/month/year в datetime

date_string = "27/10/2023"
#Важно! Формат строки должен соответствовать формату указанному в strptime.
new_dt = datetime.datetime.strptime(date_string, "%d/%m/%Y")
print(f"Datetime объект из строки DD/MM/YYYY: {new_dt}") # Вывод: 2023-10-27 00:00:00

# Еще один пример преобразования в другой формат, например, только дата
formatted_date_only = dt.strftime("%d %B %Y")
print(f"Строка только с датой в формате День Месяц Год: {formatted_date_only}") # Вывод: 27 October 2023

  

Разъяснение:

  • datetime.datetime(2023, 10, 27, 10, 30, 0): Создает объект datetime с указанными годом, месяцем, днем, часом, минутами и секундами.
  • strftime("%Y-%m-%d %H:%M:%S"): Форматирует объект datetime в строку. %Y - год с четырьмя цифрами, %m - месяц с двумя цифрами, %d - день с двумя цифрами, %H - час (24-часовой формат), %M - минуты, %S - секунды.
  • strptime(date_string, "%d/%m/%Y"): Преобразует строку в объект datetime. Необходимо указать формат строки ("%d/%m/%Y" в данном случае), чтобы strptime() мог правильно разобрать строку. Важно! Этот формат должен соответствовать формату входящей строки.

Основные директивы форматирования для strftime() и strptime():

  • %Y: Год с четырьмя цифрами (например, 2023).
  • %y: Год с двумя цифрами (например, 23).
  • %m: Месяц в виде числа (01-12).
  • %B: Полное название месяца (например, October).
  • %b или %h: Сокращенное название месяца (например, Oct).
  • %d: День месяца (01-31).
  • %H: Час (00-23).
  • %I: Час (01-12).
  • %M: Минуты (00-59).
  • %S: Секунды (00-59).
  • %f: Микросекунды (000000-999999).
  • %A: Полное название дня недели (например, Friday).
  • %a: Сокращенное название дня недели (например, Fri).
  • %w: День недели как число (0-6, воскресенье - 0).
  • %j: День года (001-366).
  • %U: Номер недели в году (воскресенье - первый день недели).
  • %W: Номер недели в году (понедельник - первый день недели).
  • %x: Предпочтительное представление даты.
  • %X: Предпочтительное представление времени.
  • %c: Предпочтительное представление даты и времени.
  • %Z: Название часового пояса.
  • %z: Смещение UTC.
  • %%: Литеральный символ '%'.

Важно помнить, что формат строки, используемый в strptime(), должен точно соответствовать формату входной строки, иначе возникнет ошибка ValueError.

В зависимости от конкретных требований к преобразованию формата, можно использовать различные комбинации директив форматирования strftime() и strptime().

0