strftime()
объекта datetime
:
from datetime import datetime
date_obj = datetime.now() # Или datetime.strptime("2023-10-27", "%Y-%m-%d") для парсинга строки
formatted_date = date_obj.strftime("%Y-%m-%d")
print(formatted_date)
Для преобразования даты в формат yyyy-mm-dd
в Python можно использовать модуль datetime
.
Вот несколько способов:
strftime()
:
import datetime
# Получаем текущую дату
today = datetime.date.today()
# Преобразуем в строку в формате yyyy-mm-dd
formatted_date = today.strftime("%Y-%m-%d")
print(formatted_date) # Вывод: 2024-10-27 (пример)
# Пример с произвольной датой
date_object = datetime.date(2023, 12, 25)
formatted_date = date_object.strftime("%Y-%m-%d")
print(formatted_date) # Вывод: 2023-12-25
strftime()
- это метод объекта datetime
, который позволяет форматировать дату и время в строку, используя специальные коды.%Y
- год с четырьмя цифрами.%m
- месяц с двумя цифрами (с ведущим нулем).%d
- день с двумя цифрами (с ведущим нулем).import datetime
today = datetime.date.today()
formatted_date = f"{today.year}-{today.month:02}-{today.day:02}"
print(formatted_date) # Вывод: 2024-10-27 (пример)
date_object = datetime.date(2023, 1, 5)
formatted_date = f"{date_object.year}-{date_object.month:02}-{date_object.day:02}"
print(formatted_date) # Вывод: 2023-01-05
:02
форматирует месяц и день, добавляя ведущий ноль, если число состоит из одной цифры.isoformat()
:
import datetime
today = datetime.date.today()
formatted_date = today.isoformat()
print(formatted_date) # Вывод: 2024-10-27 (пример)
date_object = datetime.date(2023, 5, 10)
formatted_date = date_object.isoformat()
print(formatted_date) # Вывод: 2023-05-10
isoformat()
возвращает дату в формате ISO 8601, который включает формат yyyy-mm-dd
по умолчанию.Какой способ выбрать?
Выбор зависит от ваших предпочтений и требований к читаемости кода.
strftime()
самый универсальный, так как позволяет задать произвольный формат. F-строки удобны для простой подстановки значений и легко читаются. isoformat()
- самый короткий, если нужен формат ISO 8601.
Обработка ошибок:
Важно убедиться, что у вас есть корректный объект datetime.date
или datetime.datetime
перед форматированием. Если у вас есть строка, представляющая дату, сначала ее нужно преобразовать в объект datetime
с помощью datetime.strptime()
, и уже затем форматировать.
import datetime
date_string = "2023/03/15"
try:
date_object = datetime.datetime.strptime(date_string, "%Y/%m/%d").date() # или datetime.datetime.strptime("%Y/%m/%d") если нужно время
formatted_date = date_object.strftime("%Y-%m-%d")
print(formatted_date) # Вывод: 2023-03-15
except ValueError:
print("Неверный формат даты")