カテゴリ: Thymeleaf 更新日: 2025/12/23

Thymeleafで日付をフォーマットする方法は?初心者向けガイド

Thymeleaf 日付のフォーマットは?
Thymeleaf 日付のフォーマットは?

先生と生徒の会話形式で理解しよう

生徒

「Thymeleafで日付を表示するときに、フォーマットを変更する方法はありますか?例えば、年や月をわかりやすく表示したいです。」

先生

「もちろんです!Thymeleafには、日付をフォーマットするための便利な機能があります。Spring Frameworkと一緒に使うことで、さらに簡単に日付を操作できますよ。」

生徒

「具体的にどうすればいいのか、ぜひ教えてください!」

先生

「それでは、基本的な方法から応用例まで詳しく説明していきましょう!」

1. Thymeleafで日付をフォーマットする基本的な方法

1. Thymeleafで日付をフォーマットする基本的な方法
1. Thymeleafで日付をフォーマットする基本的な方法

Thymeleafで日付を見やすい形に整えるには、th:textと一緒に#dates.format()を使うのが基本です。 このメソッドを使うことで、開発者が自由に日付の表示形式を変えられるようになります。例えば、年月日の順番を入れ替えたり、ゼロ埋めをしたりなど、用途に合わせて柔軟に変更できます。

下の例は、もっともよく使われる「yyyy-MM-dd」形式(例:2025-01-27)で今日の日付を表示するサンプルです。初めてThymeleafで日付を扱う方にも直感的で分かりやすい書き方になっています。


<p th:text="${#dates.format(today, 'yyyy-MM-dd')}"></p>

この例では、コントローラー側でtodayという変数に日付が渡されていることを想定しています。 実際のテンプレートでは、他のフォーマットに変えるだけで簡単に見た目を調整できるため、Webアプリや業務システムでも頻繁に使われる便利な書き方です。 「どのように表示すれば読みやすいか」を意識しながらフォーマットを選ぶと、画面の印象も大きく変わってきます。

2. カスタムフォーマットを使用する

2. カスタムフォーマットを使用する
2. カスタムフォーマットを使用する

カスタムフォーマットを使用すれば、年月日や時間の順序を自由にカスタマイズできます。例えば、日本語の形式で日付を表示したい場合、以下のように記述します。


<p th:text="${#dates.format(today, 'yyyy年MM月dd日')}"></p>

これにより、日付が「2025年01月27日」のように表示されます。この形式は、日本語のウェブサイトでよく使われる表記です。

3. 時間を含めた日付のフォーマット

3. 時間を含めた日付のフォーマット
3. 時間を含めた日付のフォーマット

日付だけでなく、時間も一緒に表示したい場合は、以下のようにフォーマットを設定します。


<p th:text="${#dates.format(currentDateTime, 'yyyy-MM-dd HH:mm:ss')}"></p>

このコードでは、currentDateTimeに現在の日時が設定されていることを想定しています。「2025-01-27 15:30:45」のように、日時がわかりやすく表示されます。

4. null値に対応する方法

4. null値に対応する方法
4. null値に対応する方法

日付の値がnullの場合にエラーを防ぐためには、th:ifやデフォルト値を設定する方法があります。以下のコードはその例です。


<p th:text="${date != null ? #dates.format(date, 'yyyy-MM-dd') : '日付未設定'}"></p>

このコードでは、dateがnullでない場合にフォーマットを適用し、nullの場合は「日付未設定」というデフォルト値を表示します。

5. ロケールを利用した多言語対応

5. ロケールを利用した多言語対応
5. ロケールを利用した多言語対応

ロケールを利用することで、多言語対応のフォーマットが可能です。例えば、以下のように記述すると、指定したロケールに基づいて日付がフォーマットされます。


<p th:text="${#dates.format(today, 'EEEE, MMMM d, yyyy', 'en_US')}"></p>

このコードでは、「Monday, January 27, 2025」のように英語形式で日付が表示されます。多言語対応が必要なプロジェクトにおいて、非常に役立つ機能です。

6. 日付フォーマットの使用例

6. 日付フォーマットの使用例
6. 日付フォーマットの使用例

以下は、実際にThymeleafを使ったテンプレート内で日付フォーマットを使用する例です。リスト形式で複数の日付を表示しています。


<ul>
    <li th:each="event : ${events}" th:text="${#dates.format(event.date, 'yyyy-MM-dd')}"></li>
</ul>

ここでは、eventsというリスト内の各イベントの日付をフォーマットして表示しています。このように、繰り返し処理の中でも簡単に日付フォーマットを利用できます。

まとめ

まとめ
まとめ

本記事では、Thymeleafを使った日付フォーマットの方法について詳しく解説しました。#dates.format()を利用した基本的な日付の表示方法から、カスタムフォーマット、時間を含むフォーマット、多言語対応のロケール設定、null値への対策まで、多様なケースを学びました。これらの知識を活用すれば、ユーザーにとって見やすい日付表示を簡単に実現できます。

また、リスト形式や条件付きでの表示方法も紹介しました。これにより、動的なWebアプリケーションでの応用範囲が広がり、Thymeleafの便利さをさらに感じられるようになります。以下にもう一度サンプルコードを掲載しますので、参考にしてください。


<p th:text="${#dates.format(today, 'yyyy-MM-dd')}"></p>
<p th:text="${#dates.format(today, 'yyyy年MM月dd日')}"></p>
<p th:text="${currentDateTime != null ? #dates.format(currentDateTime, 'yyyy-MM-dd HH:mm:ss') : '日時未設定'}"></p>
<ul>
    <li th:each="event : ${events}" th:text="${#dates.format(event.date, 'yyyy-MM-dd')}"></li>
</ul>

これらのコードをプロジェクトに組み込むことで、より魅力的で機能的なテンプレートを作成することができるでしょう。

先生と生徒の振り返り会話

生徒

「今回の記事で、日付をフォーマットする方法がとてもよくわかりました!特に、日本語形式や多言語対応の設定が面白かったです。」

先生

「それは良かったです。日付の表示はどんなWebアプリケーションでも使われる重要な要素ですから、しっかり覚えておくと役立ちますよ。」

生徒

「はい!次は自分のプロジェクトでカスタムフォーマットやロケールを試してみます。」

先生

「素晴らしいですね!試してみて、また質問があればいつでも聞いてください。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Thymeleafで日付をyyyy-MM-dd形式で表示するにはどうすればいいですか?

Thymeleafでは、#dates.format()を使って日付を簡単にフォーマットできます。日付を「yyyy-MM-dd」のように表示したい場合、該当する書式を指定することで実現可能です。

Spring FrameworkとThymeleafを連携させて日付フォーマットを行うにはどんな設定が必要ですか?

特別な設定をせずに、Spring BootとThymeleafの標準機能だけで日付のフォーマットは可能です。モデルで日付データを渡し、テンプレート側でth:textを使って表示すればOKです。
カテゴリの一覧へ
新着記事
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
SpringのBindingResult完全ガイド!初心者でもわかる入力チェックとgetTargetの使い方
Thymeleafのth:data-*属性を使いこなす!初心者向け完全解説
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.3
Java&Spring記事人気No3
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説