Подтвердить что ты не робот

(Django) как получить название месяца?

У меня есть запрос, как показано ниже:

today = datetime.datetime.now()
month = today.month
print month

и выводит:

3

Я хочу показать название месяца, например "Марш". Что мне делать?

4b9b3361

Ответ 1

использовать метод форматирования строки datetime, например

>>> today.strftime('%B')
'March'

для получения дополнительной информации и полного списка кодов форматирования, см. python datetime docs

Ответ 2

Только для английского языка вы можете использовать метод форматирования строки datetime для Python, например.

>>> today.strftime('%B')
'March'

Вы также можете использовать методы Django, которые вернут имя в текущем активированном языке.

В шаблоне Django:

{{ a_date|date('F') }}

В функции просмотра Django:

from django.template.defaultfilters import date
date(a_date, 'F')

Вы можете протестировать позже в оболочке Django (python manage.py shell), например. Испанский:

In [1]: from django.utils.translation import get_language, activate

In [2]: activate('es')

In [3]: get_language()
Out[3]: 'es'

In [4]: import datetime

In [5]: today = datetime.date.today()

In [6]: from django.template.defaultfilters import date

In [7]: date(today, 'F')
Out[7]: u'Septiembre'

Ответ 3

Другим вариантом является Calendar API.

calendar.month_name[3] # would return 'March'

Ответ 4

Month Name до Month Number и наоборот python

Используя календарь calendar

Создание reverse dictionary было бы разумным способом сделать это:

dict((val,k) for k,v in enumerate(calendar.month_abbr))

Ответ 6

Календарный модуль Python сделает это за вас, см. calendar.month_name

month = calendar.month_name[3]

Ответ 7

Использовать strftime:

>>> today = datetime.datetime.now()
>>> today.strftime("%B")
'March'
>>> 

Ответ 8

Я решил то же самое, зарегистрировав собственный тег шаблона, чтобы помочь мне применить его на любой странице шаблона, для которой требуется имя месяца.

templatetags/etras.py

from django import template
import calendar

register = template.Library()

@register.filter
def month_name(value):
    return calendar.month_name[value]

Использование в шаблоне:

{% load extras %}
{{ month_figure|month_name }}