デフォルトのDjango日付テンプレート形式を変更するにはどうすればよいですか?


100

データベースにISO 8601形式の日付があります%Y-%m-%d。ただし、日付がテンプレートに渡されると、のようになりOct. 16, 2011ます。

フォーマットを好きなように操作できる方法はありますか?

回答:



274

テンプレート内では、Djangoのdateフィルターを使用できます。例えば:

<p>Birthday: {{ birthday|date:"M d, Y" }}</p>

与える:

誕生日:1983年1月29日

日付フィルターのドキュメントにあるより多くのフォーマットの例。


これは、日付が日時オブジェクトとして提供されている場合にのみ機能すると思います。ビューから渡された文字列だけの場合はどうなりますか?
Mohammed Shareef C '13 / 12/16

2
日付/時刻を含む任意の文字列の場合、おそらくビューコードでそれを解析してpythonのdatetimeにします。(または、可能であればもっと早い-その日付文字列が最初にコードに到着するところならどこでも。)しかし、文字列を使用して日時をDjangoテンプレートに渡す場合は、この回答が役に立ちます。
medmunds 16

テンプレートファイルで使用する上記の例に最適です。
Vinod Patidar


20

これを使用するだけです:

{{you_date_field|date:'Y-m-d'}}

これにより、2016-10-16のようなものが表示されます。必要に応じてフォーマットを使用できます。


8

views.pyで日付形式を変更し、それをテンプレートに割り当てます。

# get the object details 
home = Home.objects.get(home_id=homeid)

# get the start date
_startDate = home.home_startdate.strftime('%m/%d/%Y')

# assign it to template 
return render_to_response('showme.html' 
                                        {'home_startdate':_startDate},   
                                         context_instance=RequestContext(request) )  


6

短い日付と時刻(11/08/2018 03:23 am)を表示する必要がある場合は、次のように行うことができます。

{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}

このタグの詳細ここで与えられた書式に従った日付について、よりこちら

例:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.