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

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

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

教材紹介 Java学習のおすすめ教材

Javaの基礎を体系的に整理しながら学習したい方には、 資格対策としても定評のある定番教材が参考になります。

Javaプログラマ Silver SE 17 教科書をAmazonで見る

※ Amazon広告リンク

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

生徒

「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」のように、日時がわかりやすく表示されます。

Spring FrameworkやThymeleafを使った Webアプリ開発の全体像をやさしく理解したい人には、 この入門書が定番です。

Spring Framework超入門をAmazonで見る

※ Amazon広告リンク

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です。
カテゴリの一覧へ
新着記事
JavaのIndexOutOfBoundsExceptionを完全ガイド!初心者でも理解できる例外処理と回避方法
スッキリわかるJava入門 第4版|独学でもレッスンでも学べる完全ガイド
JavaのCookieクラスのgetCommentメソッドを解説!Servlet開発でクッキーの説明文を取得する方法
JavaのBufferedOutputStreamクラスのwriteメソッドを徹底解説!初心者でもわかるファイルへのバイナリ書き込み
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.3
Java&Spring記事人気No3
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
No.4
Java&Spring記事人気No4
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.5
Java&Spring記事人気No5
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.6
Java&Spring記事人気No6
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.7
Java&Spring記事人気No7
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス
No.8
Java&Spring記事人気No8
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク