我需要从字符串中解析波兰语日期:
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 :(得分: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)