我有一个查询象下面这样:(Django)如何获取月份名称?
today = datetime.datetime.now()
month = today.month
print month
它输出:
3
我想要显示的月份名称,如 “三月”。我该怎么办?
我有一个查询象下面这样:(Django)如何获取月份名称?
today = datetime.datetime.now()
month = today.month
print month
它输出:
3
我想要显示的月份名称,如 “三月”。我该怎么办?
谢谢:)人 – 2012-03-08 17:01:46
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))
只有英语版,您可以使用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'
谢谢你这里最完整的答案:) – Florian 2017-06-08 11:08:18
我解决了同一注册一个自定义模板标签来帮我申请它需要月份名称的任何模板页面上。
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 }}
都不是为我好,因为他们没有采取请求的语言环境考虑... – lvella 2014-03-09 00:11:24