Разбор даты питона из строки - польский язык

Мне нужно разобрать дату польского из строки, как это:

locale.setlocale(locale.LC_TIME, 'pl_PL.utf8')
print(time.strptime("27 luty 13:00:00", '%d %B %H:%M:%S'))

На самом деле выше работает нормально, но даты на польском языке не так тривиальны, как на английском. Действительная дата на польском языке:

27 lutego 13:00:00

К сожалению, strptime не может печатать:

ValueError: time data '27 lutego 13:00:00' does not match format '%d %B %H:%M:%S'

Каково полное решение для анализа дат из разных языков?

0 ответов

Вы можете использовать таблицу поиска:

lookup_table = {
    "stycznia": "styczeń",   "lutego": "luty",
    "marca": "marzec",       "kwietnia": "kwiecień",
    "maja": "maj",           "czerwca": "czerwiec",
    "lipca": "lipiec",       "sierpnia": "sierpień",
    "września": "wrzesień",  "października": "październik",
    "listopada": "listopad", "grudnia": "grudzień"
}
s = "27 lutego 13:00:00"
for k, v in lookup_table.items():
    s = s.replace(k, v)

locale.setlocale(locale.LC_TIME, "pl_PL.utf8")
result = time.strptime(s, "%d %B %H:%M:%S")    # time.struct_time(tm_year=1900, tm_mon=2, tm_mday=27, tm_hour=13, 
                                               #                  tm_min=0, tm_sec=0, tm_wday=1, tm_yday=58, tm_isdst=-1)
Другие вопросы по тегам