カテゴリ: Thymeleaf 更新日: 2026/05/07

Thymeleafの#dates.formatメソッドとは?初心者向け日付フォーマットガイド

Thymeleafの#datesのformatメソッド
Thymeleafの#datesのformatメソッド

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

生徒

「Thymeleafで日付を指定した形式でフォーマットする方法はありますか?」

先生

「はい!Thymeleafには#dates.formatという便利なメソッドがあります。このメソッドを使うと、日付を自由にフォーマットできますよ。」

生徒

「具体的にどのように使うのか教えてください!」

先生

「それでは、基本的な使い方から応用例まで一緒に見ていきましょう。」

1. #dates.formatメソッドの基本

「1. #dates.formatメソッドの基本」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. #dates.formatメソッドの基本
1. #dates.formatメソッドの基本

#dates.formatメソッドは、Thymeleafテンプレート内で日付を指定したフォーマットで表示するためのメソッドです。例えば、「yyyy-MM-dd」形式で日付を表示する場合は以下のように書きます。


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

このコードを実行すると、現在の日付(例: 2025-01-28)が「yyyy-MM-dd」の形式で表示されます。todayは日付オブジェクトとして事前に設定されているものとします。

2. 日本語形式での日付フォーマット

2. 日本語形式での日付フォーマット
2. 日本語形式での日付フォーマット

日本語形式で日付を表示する場合は、「yyyy年MM月dd日」のフォーマットを指定します。以下の例を見てみましょう。


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

このコードを実行すると、「2025年01月28日」のように日本語形式で日付が表示されます。地域に合わせたフォーマットが必要な場合に非常に便利です。

3. 日付と時刻を表示する

3. 日付と時刻を表示する
3. 日付と時刻を表示する

日付だけでなく時刻を含めて表示したい場合には、「yyyy-MM-dd HH:mm:ss」のようなフォーマットを指定します。


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

このコードでは、現在の日付と時刻が「2025-01-28 14:30:00」のように表示されます。タイムスタンプを含めたデータ表示に適しています。

4. 曜日を含めた日付フォーマット

「4. 曜日を含めた日付フォーマット」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. 曜日を含めた日付フォーマット
4. 曜日を含めた日付フォーマット

曜日を含めた日付を表示する場合は、「EEEE」のパターンを使用します。以下はその例です。


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

このコードを実行すると、「2025-01-28 (火曜日)」のように曜日が表示されます。カレンダーやスケジュール機能のテンプレートで役立ちます。

5. デフォルト値を設定する

5. デフォルト値を設定する
5. デフォルト値を設定する

日付がnullの場合にデフォルト値を設定することも可能です。以下の例では、日付がない場合に「日付未設定」を表示します。


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

このコードでは、datenullの場合に「日付未設定」と表示され、それ以外の場合はフォーマットされた日付が表示されます。

6. 実践例: 動的な日付フォーマット

6. 実践例: 動的な日付フォーマット
6. 実践例: 動的な日付フォーマット

以下は、日付を動的にフォーマットし、現在の日付や1週間後の日付を表示する例です。


<p>現在の日付: <span th:text="${#dates.format(today, 'yyyy-MM-dd')}"></span></p>
<p>1週間後の日付: <span th:text="${#dates.format(#dates.addDays(today, 7), 'yyyy-MM-dd')}"></span></p>

このコードでは、動的に計算された日付が指定した形式で表示されます。スケジュール管理やリマインダー機能のテンプレートで活用できます。

7.まとめ

「7.まとめ」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7.まとめ
7.まとめ

今回は、Thymeleafの#dates.formatメソッドを使用した日付フォーマットの基本的な使い方から応用例までを解説しました。#dates.formatを利用すれば、テンプレート内で日付を自由自在にフォーマットできるため、見やすい表示形式を簡単に実現できます。 また、曜日や時刻を含むフォーマット、日本語形式、条件付きのデフォルト表示など、実践的なテクニックも学びました。 日付の表示は多くのアプリケーションで必要とされる要素なので、この知識を活用してテンプレートをさらに魅力的にしましょう。


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

このように、#dates.formatを組み合わせて動的な日付フォーマットを活用することで、ユーザーにとって便利で分かりやすい情報提供が可能になります。

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

生徒

「Thymeleafの#dates.formatメソッドを使えば、日付を色々な形式で表示できるのが分かりました!特に曜日や時間を含めたフォーマットが役立ちそうです。」

先生

「そうですね!例えば、スケジュール管理やイベントカレンダーなどの機能にピッタリです。また、条件付きでデフォルト値を設定する方法も実務でよく使われます。」

生徒

「デフォルト値を設定する方法も便利ですね。テンプレートがもっとスマートに書けるようになりそうです。」

先生

「その通りです。今日学んだ#dates.formatを活用して、ぜひ実際のプロジェクトで試してみてくださいね。」

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

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

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

Thymeleaf(タイムリーフ)で日付の形式を変換するには、どのメソッドを使えば良いですか?

JavaのテンプレートエンジンであるThymeleafで日付を特定の形式にフォーマットしたい場合は、ユーティリティオブジェクトの「#dates.format」メソッドを使用します。このメソッドを使うことで、JavaのDateオブジェクトをブラウザ上で表示する際に、年、月、日、曜日などを自由自在なレイアウトで出力することが可能になります。初心者の方でも、ダブルクォーテーションで囲ったフォーマットパターンを指定するだけで簡単に実装できる便利な機能です。
カテゴリの一覧へ
新着記事
New1
Java
JavaのThreadクラスholdsLockメソッド完全ガイド!初心者でもわかる同期とロックの確認方法
新規投稿
New2
Spring
SpringDataJPAのJPAクエリメソッド「NotIn」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「In」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「Not」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとVS Codeで開発を始めよう!拡張機能・launch.json・ホットリロードを丁寧に解説
No.2
Java&Spring記事人気No2
Spring
SpringのModelクラスとaddAttributeメソッドの使い方を完全ガイド!初心者でも安心
No.3
Java&Spring記事人気No3
Spring
Spring Data JPAのfindAllメソッドの使い方を完全ガイド!検索結果をThymeleafのth:eachで表示
No.4
Java&Spring記事人気No4
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.5
Java&Spring記事人気No5
Java
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.6
Java&Spring記事人気No6
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.7
Java&Spring記事人気No7
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ