Конвертация строки в дату в Python: из "%d%m%Y" в datetime.date

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

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

Python
Скопировать код
from datetime import datetime

date_object = datetime.strptime("2023-04-12", "%Y-%m-%d").date()
Кинга Идем в IT: пошаговый план для смены профессии

Работа с различными форматами дат

Даты могут быть представлены в самых разных форматах. Выберите подходящий код форматирования в strptime, чтобы корректно интерпретировать структуру строки:

  • "%Y-%m-%d" соответствует "2023-04-12"
  • "%d/%m/%Y" соответствует "12/04/2023"
  • "%m/%d/%Y" соответствует "04/12/2023"
  • "%B %d, %Y" соответствует "April 12, 2023"
Python
Скопировать код
from datetime import datetime

date_object_iso = datetime.strptime("2023-04-12", "%Y-%m-%d").date()
date_object_euro = datetime.strptime("12/04/2023", "%d/%m/%Y").date()
date_object_us = datetime.strptime("04/12/2023", "%m/%d/%Y").date()
date_object_full = datetime.strptime("April 12, 2023", "%B %d, %Y").date()

Помните об обычных ошибках:

  • Пропуск вызова .date() может привести к нежелательному добавлению времени.
  • Несовпадение указанного формата с форматом строки вызовет ошибку ValueError.

Обработка нестандартных форматов дат

Если вам нужно справиться с сложными или неочевидными форматами дат, используйте dateutil.parser.parse:

Python
Скопировать код
from dateutil import parser

complex_date_string = "Wed, 12 April 2023"
date_object_flexible = parser.parse(complex_date_string).date()

Функция dateutil.parser.parse обладает большой гибкостью, однако не забывайте о .date(), если вам нужен чистый объект даты!

Преодоление распространенных ошибок

Вот несколько типичных ошибок, которые возникают при работе с датами:

  • ValueError: Убедитесь в правильности формата для strptime.
  • Ошибки локализации: Будьте внимательны к настройкам локализации, когда используете названия месяцев.
  • Проблемы с временными зонами: Не забывайте о tzinfo, если вы используете dateutil.parser.parse.

Визуализация

Пример преобразования строки с датой в объект даты:

Markdown
Скопировать код
**Исходная строка (📅):** "2023-03-14"
**Преобразование в Python (📜):** datetime.strptime("2023-03-14", "%Y-%m-%d")
**Результат – объект даты (🗓️):** 2023-03-14

И соответствующий Python код:

Python
Скопировать код
from datetime import datetime

date_string = "2023-03-14"
date_object = datetime.strptime(date_string, "%Y-%m-%d").date()

Таким образом, строка превращается в настоящий объект даты 🗓️!

Гарантия точности преобразования

Для проверки точности преобразования вашей даты используйте следующие утверждения:

Python
Скопировать код
assert date_object.year == 2023
assert date_object.month == 3
assert date_object.day == 14

Обратный процесс: Преобразование объекта даты обратно в строку

Если вам требуется преобразовать объект даты обратно в строку, воспользуйтесь strftime:

Python
Скопировать код
formatted_date_string = date_object.strftime("%Y-%m-%d")

Строка форматирования может быть модифицирована в соответствии с вашими предпочтениями.

Полезные материалы

  1. datetime — Основные типы даты и времени — Документация Python 3.12.1 — Отличный источник информации по datetime.
  2. python-dateutil · PyPI — В случае, когда стандартных возможностей datetime недостаточно.
  3. Шпаргалка по Python strftime — Памятка по функциям strftime() и strptime().
  4. python – Convert string "Jun 1 2005 1:33PM" into datetime – Stack Overflow — Ценные советы и примеры.
  5. Arrow: Более удобные даты и время для Python — Документация Arrow 🏹 1.3.0 — Если вы еще не знакомы с Arrow,пора это исправить!
  6. Использование Python datetime для работы с датами и временем — Полное руководство по datetime.
  7. Как преобразовать строку в datetime — Учебник от DigitalOcean по работе с датами в Python.