У меня есть запрос, как показано ниже:(Django) как получить название месяца?
today = datetime.datetime.now()
month = today.month
print month
и выводит:
3
Я хочу, чтобы отобразить название месяца, как "март". Что мне делать?
У меня есть запрос, как показано ниже:(Django) как получить название месяца?
today = datetime.datetime.now()
month = today.month
print month
и выводит:
3
Я хочу, чтобы отобразить название месяца, как "март". Что мне делать?
использовать способ форматирования строки datetime, например.
>>> today.strftime('%B')
'March'
для получения дополнительной информации, а также полный список кодов форматирования см the python datetime
docs
спасибо человеку :) –
datetime.datetime.strftime(today, '%B') # Outputs 'March'
или
datetime.datetime.strftime(today, '%b') # Outputs 'Mar'
http://docs.python.org/library/datetime.html#strftime-strptime-behavior
Использование STRFTIME:
>>> today = datetime.datetime.now()
>>> today.strftime("%B")
'March'
>>>
Calendar API - еще один вариант.
calendar.month_name[3] # would return 'March'
календарь модуль Python будет делать это для вас, смотрите calendar.month_name
month = calendar.month_name[3]
Month Name
в Month Number
и наоборот в python
с использованием календаря calendar
Создание reverse dictionary
будет разумный способ сделать это:
dict((val,k) for k,v in enumerate(calendar.month_abbr))
только на английском языке, вы можете использовать метод DateTime строки форматирования Python, например,
>>> today.strftime('%B')
'March'
Вы можете также использовать методы Django, который будет возвращать имя в текущем активированном языке.
В шаблоне Django:
{{ a_date|date('F') }}
В функции Джанго Вид:
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'
спасибо за самый полный ответ здесь :) – Florian
Я решил то же самое, зарегистрировавшись пользовательским тегом шаблона, чтобы помочь мне применить его на любой странице шаблона, который требует названия месяца.
templatetags/etras.ру
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 }}
Ни один из следующих ответов хороши для меня, потому что они не принимают локаль запрос в во внимание ... – lvella