プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPで日付をフォーマットする方法!fmt:formatDateタグの使い方を徹底解説

JSTL(JSP Standard Tag Library)には、日付や時刻をさまざまな形式で表示するための<fmt:formatDate>タグが用意されています。このタグを使うことで、Javaコードを直接記述することなく、JSPページ内で簡単に日付の整形が可能です。

fmt:formatDateタグの主な属性

<fmt:formatDate>タグでは、以下の属性を指定できます。

属性説明必須デフォルト値
value表示する日付の値はいなし
typeDATE(日付のみ)、TIME(時刻のみ)、BOTH(両方)のいずれかいいえdate
dateStyleFULL、LONG、MEDIUM、SHORT、DEFAULT のいずれかいいえdefault
timeStyleFULL、LONG、MEDIUM、SHORT、DEFAULT のいずれかいいえdefault
patternカスタム書式パターンいいえなし
timeZone表示する日付のタイムゾーンいいえデフォルトのタイムゾーン
var整形後の日付を格納する変数名いいえページに直接出力
scope変数を格納するスコープいいえpage

pattern属性で使える書式指定子

pattern属性を使うと、より細かく日付の形式を制御できます。主な書式指定子は以下のとおりです。

記号意味表示例
G紀元(時代)の表記AD
y2002
MApril & 04
d日(月の中の日付)20
h時(12時間制)12
H時(24時間制)0
m45
s52
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日」のようなパターンを指定すれば、和暦風の表示も簡単に実現できるので、用途に応じて使い分けるとよいでしょう。

  1. 【Android開発】日付と時刻をフォーマットして表示する方法をわかりやすく解説

    はじめに このチュートリアルでは、Androidアプリで日付と時刻をフォーマットして画面に表示する方法を、実際のコード例とともに段階的に解説します。JavaのSimpleDateFormatクラスを使えば、曜日や年月日、時分秒などを自由な形式で表示できます。 手順1:新しいプロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 手順2:レイアウトファイル(activity_main.xml)を編集する 次に、res/layout/activ

  2. Androidでミリ秒を日付形式に変換する方法【サンプルコード付き】

    この記事では、Androidアプリ開発においてミリ秒(long型のタイムスタンプ)を日付形式に変換する方法を、実際のサンプルコードとともに解説します。ミリ秒から日付への変換には、Java標準のSimpleDateFormatクラスを使用します。非常にシンプルな実装なので、初心者の方でもすぐに理解できるでしょう。実装手順ステップ1:新規プロジェクトを作成するAndroid Studioを開き、「File」⇒「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力してプロジェクトのセットアップを完了させてください。ステップ2:レイアウトファイル(activity_