Есть ли способ конвертировать несколько форматов даты в datetime python

Есть ли простой способ конвертировать несколько форматов даты в объект datetime в python? В конце концов они будут вставлены в базу данных MySQL с типом DATE.

Примеры того, какой тип данных я могу получить:

2 августа 2008 г.

04.02.2007

Май 2014 г.

Converted Я бы хотел, чтобы это были:

2008-08-02

2007-04-02

2014-05-00

Есть ли простой способ сделать это или мне нужно жестко кодировать каждый сценарий?

2 Solutions collect form web for “Есть ли способ конвертировать несколько форматов даты в datetime python”

Используйте стороннюю библиотеку dateutil :

>>> from dateutil import parser >>> parser.parse("August 2, 2008") datetime.datetime(2008, 8, 2, 0, 0) >>> parser.parse("04-02-2007") datetime.datetime(2007, 4, 2, 0, 0) >>> parser.parse("May 2014") datetime.datetime(2014, 5, 6, 0, 0) 

Преобразование в требуемый формат:

 >>> parser.parse("August 2, 2008").strftime('%Y-%m-%d') '2008-08-02' >>> parser.parse("04-02-2007").strftime('%Y-%m-%d') '2007-04-02' >>> parser.parse("May 2014").strftime('%Y-%m-%d') '2014-05-06' 

Вы можете установить его с помощью pip:

 pip install python-dateutil 

Также посмотрите:

 >>> parser.parse("May 2014") datetime.datetime(2014, 5, 6, 0, 0) >>> # As you wanted day to be 0 and that is not valid ... >>> datetime.datetime(2014, 5, 0, 0, 0) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: type object 'datetime.datetime' has no attribute 'datetime' >>> # Workaround: ... >>> from datetime import datetime >>> datedefault = datetime.now().replace(day=1, hour=0, minute=0, second=0, microsecond=0) >>> parser.parse("May 2014",default=datedefault).strftime('%Y-%m-%d') '2014-05-01' 

Если день не указан в строке даты, а также не задан по умолчанию, это займет текущий день. С сегодняшнего дня 06 Aug 2016 года он заменил день на 0 в первом разделе ответа на "May 2014" .

Вы также можете проверить дату dateparser :

 >>> import dateparser >>> dates = ['August 2, 2008', '04-02-2007', 'May 2014'] >>> [dateparser.parse(d, settings={'PREFER_DAY_OF_MONTH': 'first'}).strftime('%Y-%m-%d') for d in dates] ['2008-08-02', '2007-04-02', '2014-05-01'] 

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

  • Удаление каскада Django на внешних внешних ключах
  • Как проверить, существует ли запись с Python MySQdb
  • Python / Django MySQL Обработка времени и времени
  • применять кодировку столбцов с помощью sqlalchemy
  • Лучший способ повторить все строки в таблице DB
  • MySQL и заблокировать таблицу, прочитать, а затем усечь
  • Есть ли ограничение на количество таблиц, которые может иметь база данных PostgreSQL?
  • Как установить кодировку столбцов char в столбцах django?
  • Django в Google App Engine с облачным SQL в среде dev
  • Как вставить / получить файл, хранящийся как BLOB в MySQL db, используя python
  • Создать базу данных MySQL с помощью python
  • Python - лучший язык программирования в мире.