@bobs32

Как правильно конвертировать русское время в datetime?

При выполнении кода выпадает ошибка
locale.setlocale(locale.LC_TIME, "ru_RU.UTF-8")
datetime.datetime.strptime('1 Декабрь 2019', '%d %B %Y').date()


ValueError: time data '1 Декабрь 2019' does not match format '%d %B %Y'
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Немного переделал:
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 = int_value_from_ru_month('1 Декабрь 2019')
print (date_str)

d = datetime.strptime(date_str, '%d %m %Y')
print(d)

5e59a29437394339471282.png
Оригинал

Еще как вариант:
pip3 install dateparser

import dateparser

ruDate = '1 Декабрь 2019'
pyDate = dateparser.parse(ruDate)
print(pyDate)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы