今回はDjangoのテンプレート(template)ファイルで Datetime などの日付型の変数をフォーマとして出力する方法について解説いたします。わざわざ文字列に変換してから テンプレートファイルに渡さなくともテンプレートファイル上でフォーマットする方法がありますのでかなり便利です。
使いこなして Django の開発をより効率的にしましょう。
テンプレートファイルにおける日付のフォーマットのやり方
テンプレートファイルでは datetime 型などの変数に対して以下のように組み込みフィルタを利用することでフォーマットすることができます。
要は [|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 |
z | 1年での日数を表示 | 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/dd | Y/m/d | 2023/08/01 |
yyyy.mm.dd | Y.m.d | 2023.08.01 |
yyyy-mm-dd | Y-m-d | 2023-08-01 |
yyyy/mm/dd HH:MM:SS | Y/m/d H:i:s | 2023/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」ぐらいは覚えておくと調べる手間が省けると思います。
今回はここまでです。
お疲れ様でした。
コメント