Python在不同机器上的缩写月份名称之间的差异

问题描述 投票:1回答:1

我正在尝试以%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 datetime locale abbreviation
1个回答
0
投票

我提供了关于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())
© www.soinside.com 2019 - 2024. All rights reserved.