Преобразование строки в datetime

В этом примере посмотрим, как преобразовать строку в объект datetime в Python — через стандартный модуль datetime и через сторонний dateutil.

Что нужно знать

Перед изучением примера полезно понимать:

Пример 1. Через модуль datetime

from datetime import datetime

my_date_string = "Mar 11 2011 11:31AM"

datetime_object = datetime.strptime(my_date_string, '%b %d %Y %I:%M%p')

print(type(datetime_object))
print(datetime_object)

Вывод

<class 'datetime.datetime'>
2011-03-11 11:31:00

Метод strptime() преобразует дату и время, записанные строкой, в полноценный объект datetime. Первый параметр — сама строка, второй — шаблон формата с директивами.

Преимущество такого преобразования в том, что потом можно отдельно обращаться к месяцу, дню или времени.

Совет

Полный список директив формата и подробности о strptime() приведены в документации Python.

Пример 2. Через модуль dateutil

from dateutil import parser

date_time = parser.parse("Mar 11 2011 11:31AM")

print(date_time)
print(type(date_time))

Вывод

2011-03-11 11:31:00
<class 'datetime.datetime'>

Через модуль dateutil строку в дату можно превратить методом parse(). Удобство в том, что ему не нужен формат — он сам пытается распознать дату. Достаточно передать одну только строку.