从字符串解析python日期 - 波兰语语言环境

时间:2014-02-16 18:47:28

标签: python parsing datetime locale polish

我需要从字符串中解析波兰语日期:

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'

解析来自不同语言环境的日期的完整证明解决方案是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用查找表:

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)