JSPで日付をフォーマットする方法!fmt:formatDateタグの使い方を徹底解説
JSTL(JSP Standard Tag Library)には、日付や時刻をさまざまな形式で表示するための<fmt:formatDate>タグが用意されています。このタグを使うことで、Javaコードを直接記述することなく、JSPページ内で簡単に日付の整形が可能です。
fmt:formatDateタグの主な属性
<fmt:formatDate>タグでは、以下の属性を指定できます。
| 属性 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| value | 表示する日付の値 | はい | なし |
| type | DATE(日付のみ)、TIME(時刻のみ)、BOTH(両方)のいずれか | いいえ | date |
| dateStyle | FULL、LONG、MEDIUM、SHORT、DEFAULT のいずれか | いいえ | default |
| timeStyle | FULL、LONG、MEDIUM、SHORT、DEFAULT のいずれか | いいえ | default |
| pattern | カスタム書式パターン | いいえ | なし |
| timeZone | 表示する日付のタイムゾーン | いいえ | デフォルトのタイムゾーン |
| var | 整形後の日付を格納する変数名 | いいえ | ページに直接出力 |
| scope | 変数を格納するスコープ | いいえ | page |
pattern属性で使える書式指定子
pattern属性を使うと、より細かく日付の形式を制御できます。主な書式指定子は以下のとおりです。
| 記号 | 意味 | 表示例 |
|---|---|---|
| G | 紀元(時代)の表記 | AD |
| y | 年 | 2002 |
| M | 月 | April & 04 |
| d | 日(月の中の日付) | 20 |
| h | 時(12時間制) | 12 |
| H | 時(24時間制) | 0 |
| m | 分 | 45 |
| s | 秒 | 52 |
| S | ミリ秒 | 970 |
| E | 曜日 | Tuesday |
| D | 年の中の日数 | 180 |
| F | 月の中の曜日の回数 | 2(その月の第2水曜日など) |
| w | 年の中の週番号 | 27 |
| W | 月の中の週番号 | 2 |
| a | 午前/午後の表示 | PM |
| k | 時(12時間制・0時を24として扱う) | 24 |
| K | 時(24時間制・0〜11) | 0 |
| z | タイムゾーン | Central Standard Time |
| ' | テキストをエスケープするための記号 | |
| '' | シングルクォート自体を表示する場合に使用 | |
使用例
以下は、<fmt:formatDate>タグを使って現在日時をさまざまな形式で表示するサンプルコードです。
<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fmt" uri = "https://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:formatDate タグ</title>
</head>
<body>
<h3>日付フォーマット:</h3>
<c:set var = "now" value = "<% = new java.util.Date()%>" />
<p>整形済み日付 (1): <fmt:formatDate type = "time" value = "${now}" /></p>
<p>整形済み日付 (2): <fmt:formatDate type = "date" value = "${now}" /></p>
<p>整形済み日付 (3): <fmt:formatDate type = "both" value = "${now}" /></p>
<p>整形済み日付 (4): <fmt:formatDate type = "both" dateStyle = "short" timeStyle = "short" value = "${now}" /></p>
<p>整形済み日付 (5): <fmt:formatDate type = "both" dateStyle = "medium" timeStyle = "medium" value = "${now}" /></p>
<p>整形済み日付 (6): <fmt:formatDate type = "both" dateStyle = "long" timeStyle = "long" value = "${now}" /></p>
<p>整形済み日付 (7): <fmt:formatDate pattern = "yyyy-MM-dd" value = "${now}" /></p>
</body>
</html>上記のコードを実行すると、次のような結果が出力されます。
日付フォーマット: 整形済み日付 (1): 14:27:18 整形済み日付 (2): 23-Sep-2010 整形済み日付 (3): 23-Sep-2010 14:27:18 整形済み日付 (4): 23/09/10 14:27 整形済み日付 (5): 23-Sep-2010 14:27:18 整形済み日付 (6): 23 September 2010 14:27:18 GST 整形済み日付 (7): 2010-09-23
このように、type属性やdateStyle/timeStyle属性を組み合わせることで柔軟な表示ができ、さらにpattern属性を指定すれば「yyyy-MM-dd」のような自由なカスタム形式にも対応できます。日本語環境向けに「yyyy年MM月dd日」のようなパターンを指定すれば、和暦風の表示も簡単に実現できるので、用途に応じて使い分けるとよいでしょう。
-
【Android開発】日付と時刻をフォーマットして表示する方法をわかりやすく解説
はじめに このチュートリアルでは、Androidアプリで日付と時刻をフォーマットして画面に表示する方法を、実際のコード例とともに段階的に解説します。JavaのSimpleDateFormatクラスを使えば、曜日や年月日、時分秒などを自由な形式で表示できます。 手順1:新しいプロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 手順2:レイアウトファイル(activity_main.xml)を編集する 次に、res/layout/activ
-
Androidでミリ秒を日付形式に変換する方法【サンプルコード付き】
この記事では、Androidアプリ開発においてミリ秒(long型のタイムスタンプ)を日付形式に変換する方法を、実際のサンプルコードとともに解説します。ミリ秒から日付への変換には、Java標準のSimpleDateFormatクラスを使用します。非常にシンプルな実装なので、初心者の方でもすぐに理解できるでしょう。実装手順ステップ1:新規プロジェクトを作成するAndroid Studioを開き、「File」⇒「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力してプロジェクトのセットアップを完了させてください。ステップ2:レイアウトファイル(activity_