django のテンプレートファイルで日付型の変数をフォーマットする方法

今回はDjangoのテンプレート(template)ファイルで Datetime などの日付型の変数をフォーマとして出力する方法について解説いたします。わざわざ文字列に変換してから テンプレートファイルに渡さなくともテンプレートファイル上でフォーマットする方法がありますのでかなり便利です。

使いこなして Django の開発をより効率的にしましょう。

スポンサーリンク
目次

テンプレートファイルにおける日付のフォーマットのやり方

テンプレートファイルでは datetime 型などの変数に対して以下のように組み込みフィルタを利用することでフォーマットすることができます。

{{ 日付型の変数 | date : “日付の書式コード” }}

-例
{{ today | date : “Y/m/d” }}
=> 2023/08/01

要は [|date] でフィルタを呼び出してあげるだけです。
なのでわざわざバックエンド側でフォーマットしてからテンプレートファイルに渡さなくていいのが便利ですね

date フィルタの書式コード一覧

それでは日付フォーマットするための代表的な書式コードを表にして紹介しますので、自分が必要なフォーマットに対して書式コードを組み合わせて表現してみてください。

書式コード説明表示例
Y西暦を4桁で表示2023
y西暦を2桁で表示23
m月を0埋めで表示(01~12)08
n月を0埋めしないで表示(1 ~ 12)8
F月の名称を表示(言語はロケールに依存)August
N月の名称の短縮名を表示(言語はロケールに依存)Aug
d日付を0埋めで表示01
j日付を0埋めしないで表示1
z1年での日数を表示213
l曜日名を表示Tuesday
D曜日の短縮名を表示Tue
w曜日を数字で表示(0が日曜、6が土曜)2
A午前か午後かを表示AM
a午前か午後かを小文字で表示a.m.
H時間を24時間表記で0埋めして表示( 00 ~ 23 )13
h時間を12時間表記で0埋めして表示(01 ~ 12)01
G時間を24時間表記で0埋めしないで表示( 0 ~ 23 )13
g時間を12時間表記で0埋めしないで表示( 1 ~ 12)1
i分数を0埋めして表示( 0 ~ 59 )01
s秒数を0埋めして表示( 0 ~ 59 )01

代表的なフォーマット

最後に代表的なフォーマットの書式コードをご紹介します。
上記の表を用いれば簡単に作れますが、考えずにコピペで使いたいという人もいらっしゃると思いますので、ご利用ください。

書式書式コード出力例
yyyy/mm/ddY/m/d2023/08/01
yyyy.mm.ddY.m.d2023.08.01
yyyy-mm-ddY-m-d2023-08-01
yyyy/mm/dd HH:MM:SSY/m/d H:i:s2023/08/01 00:00:00
yyyy年mm月dd日 HH時MM分SS秒Y年m月d日 H時i分s秒2023年06月01日 00時00分00秒

いかがでしょうか。
日付フォーマットは多用すると思いますので、「年 = Y , 月 = m , 日 = d , 時間 = H , 分 = i , 秒 = s」ぐらいは覚えておくと調べる手間が省けると思います。

今回はここまでです。
お疲れ様でした。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

本業ではPHPを使ったWEBアプリやJavaを使用した基幹アプリを作成しております。Pythonは個人的に勉強しており、E資格を取ったりしたおかげで、業務でAIの研究とかも任されるようになりました。学習のアウトプットのために本サイトを運営しておりますが、これからPythonを学ぶという人のお役に立てればいいなと思います。わからないことや調査して記事にしてほしいことがございましたらご連絡いただけると幸いです。

コメント

コメントする

目次
閉じる