代码之家  ›  专栏  ›  技术社区  ›  Janusz Skonieczny

用波兰语和python格式化日期和月份名称

  •  2
  • Janusz Skonieczny  · 技术社区  · 14 年前

    在python(或在django模板中)中是否有现成的方式来格式化一个日期,根据波兰语规则,这个日期有完整的月份名称?

    我想得到:

    6 września 2010
    

    >>> datetime.today().date().strftime("%d %B %Y")
    '06 wrzesień 2010'
    
    2 回复  |  直到 14 年前
        1
  •  9
  •   Vinay Sajip    5 年前

    使用 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
    

    更新:

        2
  •  1
  •   Yog    9 年前

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

    电子
    月份,特定于区域设置的替代表示法,通常用于长日期表示法。
    “listopada”(表示波兰语言环境,与“Listopad”相对)

    如果要在html模板中指定格式,则可以执行以下操作:
    {{ datefield|date:"j E Y" }}

        3
  •  0
  •   LAFK says Reinstate Monica    5 年前

    OP的代码现在如他所愿:返回“30 kwietnia 2020”,而不是 30 kwiecień 2020 . 今天测试了python2.7和python3.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'