我正在尝试以%d. %b. %Y
的形式解析德语日期。使用相同的语言环境,我得到März
(月份进行)的不同缩写。
我跑步时:
locale.setlocale(locale.LC_ALL, 'de_DE')
loc = locale.getlocale()
print("changed locale " + str(loc))
print(datetime(2020, 3, 19).strftime("%b"))
在Windows 10上,它显示Python 3.7.2
:
更改的语言环境('de_DE','ISO8859-1')Mrz
但是,将打印云函数(也为python 3.7
)
更改的语言环境('de_DE','ISO8859-1')Mär
März
曾经缩写为Mär
,而在另一台机器上是Mrz
,怎么解决?是否有其他可以使用的语言环境?
我提供了关于Python-Forum.de的解决方法。
这个想法是创建一个自定义解析器,在我的情况下效果很好:
class GermanParserInfo(parser.parserinfo):
MONTHS = [
('Jan', 'Januar'),
('Feb', 'Februar'),
('Mär', 'Mrz', 'März'),
('Apr', 'April'),
('Mai',),
('Jun', 'Juni'),
('Jul', 'Juli'),
('Aug', 'August'),
('Sep', 'Sept', 'September'),
('Okt', 'Oktober'),
('Nov', 'November'),
('Dez', 'Dezember'),
]
date = parser.parse(input, GermanParserInfo())