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()
.