格式化日期与月份名称在波兰语中,在python中

时间:2010-09-06 21:33:38

标签: python django date internationalization format

是否有开箱即用的方式在python(或django模板中)格式化,根据波兰语规则使用完整月份名称的日期?

我想得到:

6 września 2010

而不是:

>>> datetime.today().date().strftime("%d %B %Y")
'06 wrzesień 2010'

3 个答案:

答案 0 :(得分:9)

使用Babel

>>> import babel.dates
>>> import datetime
>>> now = datetime.datetime.now()
>>> print babel.dates.format_date(now, 'd MMMM yyyy', locale='pl_PL')
6 września 2010

更新:纳丹戴维斯的评论。

答案 1 :(得分:2)

https://docs.djangoproject.com/es/1.9/ref/templates/builtins/#date

  

电子
  月份,特定于语言环境的替代表示,通常用于长日期表示   ' listopada' (对于波兰语语言环境,而不是“Listopad'”

如果您想在html模板中指定格式,那么这样做:
Water NUM: 1 Squirtle (radio button) Water NUM: 2 Squirtle (radio button) Mudkip (radio button) Fire NUM: 3 Squirtle (radio button) Mudkip (radio button) Charmander (radio button) Grass NUM: 4 Squirtle (radio button) Mudkip (radio button) Charmander (radio button) Bulbasaur (radio button) Grass NUM: 5 Squirtle (radio button) Mudkip (radio button) Charmander (radio button) Bulbasaur (radio button) Treecko (radio button) Grass NUM: 6 Squirtle (radio button) Mudkip (radio button) Charmander (radio button) Bulbasaur (radio button) Treecko (radio button) Turtwig (radio button)

答案 2 :(得分:0)

OP的代码现在可以按他的预期工作:返回“ 30 kwietnia 2020”,而不返回30 kwiecień 2020。今天使用Python 2.7和Python 3.6进行了测试。设置语言环境是必需的,我使用的是一个平台-其他答案,这可能是网络应用程序的问题。

$ python
Python 2.7.17 (default, Apr 15 2020, 17:20:14) 
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> [cut repeated code]
$ python3.6
Python 3.6.9 (default, Apr 18 2020, 01:56:04) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> datetime.datetime.today()
datetime.datetime(2020, 4, 30, 18, 13, 21, 308217)
>>> datetime.datetime.today().strftime("%d %B %Y")
'30 April 2020'
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'pl_PL.UTF-8'
>>> datetime.datetime.today().strftime("%d %B %Y")
'30 kwietnia 2020'