我有一個查詢象下面這樣:(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