Как преобразовать строку, представляющую дату в формате `dd-mm-yyyy`, в объект `datetime`?

Для преобразования строки даты формата dd-mm-yyyy в объект datetime в Python можно использовать модуль datetime и метод strptime:

import datetime

date_string = "21-03-2023"
date_object = datetime.datetime.strptime(date_string, "%d-%m-%Y")
print(date_object)
Здесь "%d-%m-%Y" - это форматная строка, соответствующая формату даты.

Для преобразования строки, представляющей дату в формате dd-mm-yyyy, в объект datetime в Python, можно использовать модуль datetime и его метод strptime().

Метод strptime() принимает два аргумента:

  • Первый аргумент - это строка, которую нужно преобразовать.
  • Второй аргумент - это строка формата, которая определяет формат даты в исходной строке.

В нашем случае, формат даты dd-mm-yyyy соответствует строке формата "%d-%m-%Y". Разберем подробнее:

  • %d: День месяца (01-31)
  • %m: Номер месяца (01-12)
  • %Y: Год с веком (например, 2023)

Вот пример кода, демонстрирующий преобразование:


import datetime

date_string = "25-12-2023"
date_object = datetime.datetime.strptime(date_string, "%d-%m-%Y")

print(date_object)
print(type(date_object))
  

Объяснение кода:

  1. Импортируем модуль datetime.
  2. Создаем строку date_string, содержащую дату в формате dd-mm-yyyy.
  3. Используем datetime.datetime.strptime(date_string, "%d-%m-%Y") для преобразования строки в объект datetime. strptime создает объект datetime, а не просто date. Если нужен только date, можно использовать datetime.datetime.strptime(date_string, "%d-%m-%Y").date().
  4. Выводим объект date_object на консоль. Он будет представлен в формате yyyy-mm-dd hh:mm:ss (время по умолчанию 00:00:00).
  5. Выводим тип объекта date_object, который будет <class 'datetime.datetime'>.

Дополнительные соображения:

  • Обработка ошибок: Важно предусмотреть обработку исключений ValueError, которые могут возникнуть, если строка не соответствует указанному формату. Например:
  • 
    import datetime
    
    date_string = "25/12/2023" # Неправильный формат
    try:
        date_object = datetime.datetime.strptime(date_string, "%d-%m-%Y")
        print(date_object)
    except ValueError:
        print("Неверный формат даты. Ожидается dd-mm-yyyy.")
        
  • Только дата: Если вам нужен только объект date, а не datetime, можно использовать datetime.date.strptime() или извлечь дату из объекта datetime:
  • 
    import datetime
    
    date_string = "25-12-2023"
    date_object = datetime.datetime.strptime(date_string, "%d-%m-%Y").date()
    
    print(date_object) # Вывод: 2023-12-25
    print(type(date_object)) # Вывод: <class 'datetime.date'>
        
0