Datetime в Python, конвертирование строки

Рейтинг: 3Ответов: 1Опубликовано: 05.03.2015

Есть строка с датой:

f = '05 марта 2015, 13:00'

Моя цель - перевести дату в формат, принимаемый полем mysql, пользоваться буду функцией:

time.strftime('%Y-%m-%d %H:%M:%S')

Но сейчаc нужно вытащить дату, и вопрос состоит в том, как это реализовать?

Пытался:

d1 = datetime.datetime.strptime('05 марта 2015, 13:00', '%d Month %Y, %H:%M')

print d1

Но вообще это от безысходности, т.к. сам понимаю, что нужно выявлять русский месяц.

Ответы

▲ 3

В соответствии с рекомендациями в комментариях к вопросу, реализация:

from datetime import datetime

RU_MONTH_VALUES = {
    'января': 1,
    'февраля': 2,
    'марта': 3,
    'апреля': 4,
    'мая': 5,
    'июня': 6,
    'июля': 7,
    'августа': 8,
    'сентября': 9,
    'октября': 10,
    'ноября': 11,
    'декабря': 12,
}


def int_value_from_ru_month(date_str):
    for k, v in RU_MONTH_VALUES.items():
        date_str = date_str.replace(k, str(v))

    return date_str


date_str = '05 марта 2015, 13:00'
date_str = int_value_from_ru_month(date_str)
print date_str

d = datetime.strptime(date_str, '%d %m %Y, %H:%M')
print d
print d.strftime('%d %B %Y, %H:%M')

Консоль:

05 3 2015, 13:00
2015-03-05 13:00:00
05 March 2015, 13:00