Конвертация строки в объект datetime

Бывает так, что при импорте данных необходимо извлечь дату из текстового поля и преобразовать ее в формат datetime для последующей вставки в базу данных через ORM Django. В общем случае дата может быть в произвольном строковом формате.

Примеры:

Jun 3 2014 5:23PM 
Aug 28 1999 12:00AM

Для такой типовой задачи ожидаемо существует решение в стандартной библиотеке Python — метод strptime модуля datetime. В свою очередь вызов datetime.strptime(date_string, format) является эквивалентом вызова datetime(*(time.strptime(date_string, format)[0:6])).

В итоге задача решается так:

from datetime import datetime
date = datetime.strptime("Jun 3 2014 5:23PM", '%b %d %Y %I:%M%p')

Маска форматирования даты задается аналогично методу strftime(), который реализует обратную по смыслу функциональность.