Babel date_format 返回 2017 年的 2016 年日期

Babel date_format returning 2016 for 2017 date

我正在尝试显示针对指定语言格式化的日期,我有点惊讶地看到:

babel.dates.format_date(date(2017,1,1), 'MMM Y')

给出的期望值为:

u'Jan 2017'

同时:

babel.dates.format_date(date(2017,1,1), 'MMM Y', locale='fr_FR')

给我:

u'janv. 2016'

为什么是 2016 年而不是 2017 年?

这是因为 Y 给你的是星期年。您需要使用 yyyy 来获得您期望的结果。

https://github.com/python-babel/babel/issues/138

print format_date(date(2017,1,1), 'MMM yyyy')

print format_date(date(2017,1,1), 'MMM yyyy', locale='fr_FR')

Jan 2017
janv. 2017