Преобразование строки в datetime
В этом примере посмотрим, как преобразовать строку в объект datetime в Python — через стандартный модуль datetime и через сторонний dateutil.
Что нужно знать
Перед изучением примера полезно понимать:
Модуль datetime — даты и время в Python — модуль datetime
Python: строки — строки
Пример 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(). Удобство в том, что ему не нужен формат — он сам пытается распознать дату. Достаточно передать одну только строку.