2017-02-05 51 views
1

我想顯示格式化爲指定的語言的日期,我看到有些驚訝:巴貝爾DATE_FORMAT回到2016年2017年之前

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年?

+0

你是什麼確切的問題? –

+0

什麼問題?至於縮短的月份,根據我們在池塘裏的可憐鳥,'janv.'是一月份正確的法語縮寫月份格式(https://lts.library.cornell.edu/lts/pp/spp/mosabbr#french )。 – 2ps

+0

是的,但它應該是2017年不是2016 :) – aguyngueran

回答

7

這是因爲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 
+0

也請參閱http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table – hop