Thymeleafの#dates.formatメソッドとは?初心者向け日付フォーマットガイド
生徒
「Thymeleafで日付を指定した形式でフォーマットする方法はありますか?」
先生
「はい!Thymeleafには#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. 日本語形式での日付フォーマット
日本語形式で日付を表示する場合は、「yyyy年MM月dd日」のフォーマットを指定します。以下の例を見てみましょう。
<p th:text="${#dates.format(today, 'yyyy年MM月dd日')}"></p>
このコードを実行すると、「2025年01月28日」のように日本語形式で日付が表示されます。地域に合わせたフォーマットが必要な場合に非常に便利です。
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. 曜日を含めた日付フォーマット
曜日を含めた日付を表示する場合は、「EEEE」のパターンを使用します。以下はその例です。
<p th:text="${#dates.format(today, 'yyyy-MM-dd (EEEE)')}"></p>
このコードを実行すると、「2025-01-28 (火曜日)」のように曜日が表示されます。カレンダーやスケジュール機能のテンプレートで役立ちます。
5. デフォルト値を設定する
日付がnullの場合にデフォルト値を設定することも可能です。以下の例では、日付がない場合に「日付未設定」を表示します。
<p th:text="${date != null ? #dates.format(date, 'yyyy-MM-dd') : '日付未設定'}"></p>
このコードでは、dateがnullの場合に「日付未設定」と表示され、それ以外の場合はフォーマットされた日付が表示されます。
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.まとめ
今回は、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を活用して、ぜひ実際のプロジェクトで試してみてくださいね。」