Python中不同机器的缩写月份名称的差异
我正试图以Python中不同机器的缩写月份名称的差异,python,datetime,locale,abbreviation,Python,Datetime,Locale,Abbreviation,我正试图以%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上,Python3.7.2打印: 更改了区域设置('de_de'
%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上,Python3.7.2
打印:
更改了区域设置('de_de','ISO8859-1')
Mrz
但是,云函数(也是python3.7
)打印
更改了区域设置('de_de','ISO8859-1')
马尔
怎么可能März
曾经被缩写为Mär
,并且在另一台机器上Mrz
如何解决?
是否要使用其他语言环境?我找到了一个解决方法
我们的想法是创建一个自定义解析器,它对我的案例非常有效:
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())
我找到了一个解决办法
我们的想法是创建一个自定义解析器,它对我的案例非常有效:
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())
FWIW,
locale.setlocale(locale.LC_ALL,'de_de')
给了我一个locale.Error:不支持的locale设置
,但是locale.setlocale(locale.LC_ALL,'german_german')
工作并打印更改的locale('de_de','cp1252')
和Mrz
。(在Windows机器上同时使用Python 2.7.17和Python 3.8.1)看来März
的德语缩写是März
——因此两者都不正确。@martineau我不知道你从哪里得到的,但März
不是缩写。我看了好几个资料,似乎都是这样。不管怎样,德语维基百科文章的第一行写着“dermärz(Abkürzung Mrz.order Mär[1]),部分翻译成英语的是“March(缩写为Mrz.或Mär[1]),所以答案是OK.FWIW,locale.setlocale(locale.LCäALL,'deäde')
给我一个locale.Error:不支持的locale设置
,但是locale.setlocale(locale.LC_ALL,'german_germany')
工作并打印更改的locale('de_de','cp1252')
和Mrz
。(在Windows机器上同时使用Python 2.7.17和Python 3.8.1)看来März
的德语缩写是März
——因此两者都不正确。@martineau我不知道你从哪里得到的,但März
不是缩写。我看了好几个资料,似乎都是这样。不管怎样,德语维基百科文章的第一行写着“dermärz(Abkürzung Mrz.ordermär[1]),部分翻译成英语的是“March(缩写为Mrz.或Mär[1]),所以答案是两种方式都可以。