Превращение текстового представления даты на русском в вид даты
Существует представление даты описанное как
d=['ЧЕТВЕРГ 23 ИЮНЯ', 'ПЯТНИЦА 24 ИЮНЯ', 'СУББОТА 25 ИЮНЯ', 'ПОНЕДЕЛЬНИК 1 АВГУСТА']
следовательно, необходимо привести данный вид к
res_d=['23.06.2022','24.06.2022','25.06.2022','01.08.2022']
p.s. Даже если удалить первое слово "дня недели" с каждой строки, то как превратить "число" и "месяц" ('23 ИЮНЯ') в приемлемый вид даты?
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Самое простое и надежное - сделать словарь для маппинга. Если хочется чего-то более эдакого, то вот:
import locale
from datetime import datetime
d=['ЧЕТВЕРГ 23 ИЮНЯ', 'ПЯТНИЦА 24 ИЮНЯ', 'СУББОТА 25 ИЮНЯ', 'ПОНЕДЕЛЬНИК 1 АВГУСТА']
locale.setlocale(locale.LC_ALL, 'ru_RU')
res = []
for item in d:
date = ' '.join([item.split()[1], item.split()[2][:3]])
res.append(datetime.strftime(datetime.strptime(date+" 2022", '%d %b %Y'), "%d.%m.%Y"))
print(res)
['23.06.2022', '24.06.2022', '25.06.2022', '01.08.2022']