JSP を使用する最も重要な利点の 1 つは、すべての Java API を使用できることです。この章では、現在の日付と時刻を java.util パッケージにカプセル化する Java の Date クラスについて詳しく説明します。
Date クラスには 2 つのコンストラクターがあります。最初のコンストラクターは、現在の日付と時刻を使用してオブジェクトを初期化します。
日付( )2 番目のコンストラクターは、1970 年 1 月 1 日の早朝から表現される時刻までのミリ秒数を表すパラメーターを受け取ります。
日付(長いミリ秒)Date オブジェクトを取得したら、次の表にリストされているすべてのメソッドを使用できます。
シリアルナンバー | 方法と説明 |
---|---|
1 | boolean after(Date date) は、指定された日付より後の場合は true を返し、それ以外の場合は false を返します。 |
2 | boolean before(Date date) は、指定された日付より前の場合は true を返し、それ以外の場合は false を返します。 |
3 | Object clone() は現在のオブジェクトのコピーを取得します。 |
4 | int CompareTo(Date date) は、指定された日付と等しい場合は 0 を返し、指定された日付より前の場合は負の数値を返し、指定された日付より後の場合は正の数値を返します。 |
5 | int CompareTo(Object obj)は、compareTo(Date) と同じです。 obj が Date クラスまたはそのサブクラスのオブジェクトではない場合、ClassCastException がスローされます。 |
6 | booleanquals(Object date) は、指定された日付と同じ場合は true を返し、それ以外の場合は false を返します。 |
7 | long getTime() は、 1970 年 1 月 1 日の早朝からこのオブジェクトが表す時刻までのミリ秒数を返します。 |
8 | int hashCode() は、このオブジェクトのハッシュ コードを返します。 |
9 | void setTime(long time) は、指定されたパラメーターを使用して時刻と日付を設定します。パラメーター time は、1970 年 1 月 1 日の早朝から時刻までの経過時間をミリ秒単位で表します。 |
10 | String toString() は、このオブジェクトを文字列に変換し、この文字列を返します。 |
JSP プログラミングを使用すると、次のように Date オブジェクトの toString() メソッドを使用するだけで、現在の日付と時刻を簡単に取得できます。
<%@ page import="java.io.*,java.util.*, javax.servlet.*" %><html><head><title>現在の日付と時刻を表示</title></head>< body><center><h1>現在の日付と時刻を表示</h1></center><% Date date = new Date(); out.print( "<h2 align="center">" +date.toString()+"</h2>");%></body></html>上記のコードを CurrentDate.jsp ファイルに保存し、http://localhost:8080/CurrentDate.jsp にアクセスします。実行結果は次のとおりです。
現在の日付と時刻を表示月曜日 6 月 21 日 21:46:49 GMT+04:00 2013http://localhost:8080/CurrentDate.jsp を更新すると、更新ごとに取得される秒数が異なることがわかります。
冒頭で述べたように、JSP スクリプトでは任意の Java メソッドを使用できます。 2 つの日付を比較する場合は、
これを行うには、次の方法を参照できます。
getTime() メソッドを使用してミリ秒数を取得し、ミリ秒数を比較します。
before()、after()、equals() メソッドを使用します。たとえば、new Date(99,2,12).before(new Date(99,2,18)) は true を返します。
CompareTo() メソッドを使用します。このメソッドは Comparable インターフェイスで定義され、Date で実装されます。
SimpleDateFormat は、ロケールに依存した方法で日付の書式設定と解析を行うため、カスタム パターンを使用して日付と時刻の書式設定を行うことができます。
CurrentDate.jsp を少し変更し、次の変更コードを取得します。
<%@ page import="java.io.*,java.util.*" %><%@ page import="javax.servlet.*,java.text.*" %><html><head><title >現在の日付と時刻を表示</title></head><body><center><h1>現在の日付と時刻を表示</h1></center><% Date dNow = new Date( ); SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); out.print( "<h2 align="center">" + ft.format(dNow) + "</h2>"); %></body></html>
CurrentDate.jsp を再度コンパイルし、http://localhost:8080/CurrentDate.jsp にアクセスすると、次の結果が得られます。
現在の日付と時刻を表示Mon 2013.06.21 at 10:06:44 PM GMT+04:00パターン文字列を指定するには、次の表にリストされている形式コードを使用します。
キャラクター | 説明する | 例 |
---|---|---|
G | 時代識別子 | 広告 |
y | 4桁の年 | 2001年 |
M | 月 | 7月または07日 |
d | 日 | 10 |
h | 12 時間制、午前/午後 (1 ~ 12) | 12 |
H | 24時間時計 | 22 |
メートル | 分 | 30 |
s | 2番 | 55 |
S | ミリ秒 | 234 |
E | 週 | 火曜日 |
D | 一年のうちの日 | 360 |
F | 月の曜日 | 2日(7月の第2水曜日) |
w | 年間の週 | 40 |
W | 月の特定の週 | 1 |
ある | 午前/午後マーク | 午後 |
k | 一日の時間(1~24) | 24 |
K | 時刻、午前/午後 (0 ~ 11) | 10 |
z | タイムゾーン | 東部標準時 |
' | テキスト区切り文字 | デリミタ |
」 | 一重引用符 | ` |
Date クラスの詳細については、Java API ドキュメントを参照してください。