JSP-処理日
この章では、JSPでデータを処理する方法について説明します。JSPを使用することの最も重要な利点の1つは、コアJavaで使用可能なすべてのメソッドを使用できることです。私たちはあなたを案内しますDate で利用可能なクラス java.utilパッケージ; このクラスは、現在の日付と時刻をカプセル化します。
Dateクラスは、2つのコンストラクターをサポートします。最初のコンストラクターは、オブジェクトを現在の日付と時刻で初期化します。
Date( )
次のコンストラクターは、1970年1月1日の午前0時から経過したミリ秒数に等しい1つの引数を受け入れます。
Date(long millisec)
Dateオブジェクトを使用できるようになったら、次のサポートメソッドのいずれかを呼び出して日付を操作できます-
S.No. | 方法と説明 |
---|---|
1 | boolean after(Date date) 呼び出し元のDateオブジェクトにdateで指定された日付より後の日付が含まれている場合はtrueを返し、そうでない場合はfalseを返します。 |
2 | boolean before(Date date) 呼び出し元のDateオブジェクトにdateで指定された日付より前の日付が含まれている場合はtrueを返し、そうでない場合はfalseを返します。 |
3 | Object clone( ) 呼び出し元のDateオブジェクトを複製します。 |
4 | int compareTo(Date date) 呼び出し元のオブジェクトの値を日付の値と比較します。値が等しい場合は0を返します。呼び出し元のオブジェクトが日付より前の場合は、負の値を返します。呼び出し元のオブジェクトが日付より後の場合は、正の値を返します。 |
5 | int compareTo(Object obj) objがDateクラスの場合、compareTo(Date)と同じように動作します。それ以外の場合は、ClassCastExceptionをスローします。 |
6 | boolean equals(Object date) 呼び出し元のDateオブジェクトにdateで指定されたものと同じ時刻と日付が含まれている場合はtrueを返し、そうでない場合はfalseを返します。 |
7 | long getTime( ) 1970年1月1日から経過したミリ秒数を返します。 |
8 | int hashCode( ) 呼び出し元オブジェクトのハッシュコードを返します。 |
9 | void setTime(long time) 1970年1月1日午前0時からの経過時間をミリ秒単位で表す時刻で指定された日時を設定します。 |
10 | String toString( ) 呼び出し元のDateオブジェクトを文字列に変換し、結果を返します。 |
現在の日付と時刻を取得する
JSPプログラムを使用すると、現在の日付と時刻を非常に簡単に取得できます。単純なDateオブジェクトを使用できますtoString() 次のように現在の日付と時刻を印刷する方法-
<%@ page import = "java.io.*,java.util.*, javax.servlet.*" %>
<html>
<head>
<title>Display Current Date & Time</title>
</head>
<body>
<center>
<h1>Display Current Date & Time</h1>
</center>
<%
Date date = new Date();
out.print( "<h2 align = \"center\">" +date.toString()+"</h2>");
%>
</body>
</html>
コードを保持しましょう CurrentDate.jsp 次に、URLを使用してこのJSPを呼び出します http://localhost:8080/CurrentDate.jsp。次の結果が表示されます-
Display Current Date & Time
Mon Jun 21 21:46:49 GMT+04:00 2010
でページを更新します URL http://localhost:8080/CurrentDate.jsp。更新するたびに秒単位で違いがわかります。
日付の比較
前のセクションで説明したように、JSPスクリプトで使用可能なすべてのJavaメソッドを使用できます。2つの日付を比較する必要がある場合は、次の方法を検討してください。
使用できます getTime( ) 両方のオブジェクトについて、1970年1月1日の午前0時から経過したミリ秒数を取得し、これら2つの値を比較する方法。
あなたは方法を使うことができます before( ), after( )、および equals( )月の12日は18日の前に来るからです。例えば、new Date(99, 2, 12).before(new Date (99, 2, 18)) trueを返します。
あなたは使用することができます compareTo( )方法; このメソッドは、Comparable interface 日付によって実装されます。
SimpleDateFormatを使用した日付の書式設定
SimpleDateFormatは、ロケールに依存する方法で日付をフォーマットおよび解析するための具象クラスです。SimpleDateFormatを使用すると、日時フォーマット用のユーザー定義パターンを選択することから始めることができます。
上記の例を次のように変更してみましょう-
<%@ page import = "java.io.*,java.util.*" %>
<%@ page import = "javax.servlet.*,java.text.*" %>
<html>
<head>
<title>Display Current Date & Time</title>
</head>
<body>
<center>
<h1>Display Current Date & Time</h1>
</center>
<%
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
out.print( "<h2 align=\"center\">" + ft.format(dNow) + "</h2>");
%>
</body>
</html>
上記のサーブレットをもう一度コンパイルしてから、URLを使用してこのサーブレットを呼び出します http://localhost:8080/CurrentDate。次の結果が表示されます-
Display Current Date & Time
Mon 2010.06.21 at 10:06:44 PM GMT+04:00
単純なDateFormatフォーマットコード
時間形式を指定するには、時間パターン文字列を使用します。このパターンでは、すべてのASCII文字がパターン文字として予約されており、次のように定義されています。
キャラクター | 説明 | 例 |
---|---|---|
G | 時代指定子 | 広告 |
y | 4桁の年 | 2001年 |
M | 年の月 | 7月または07 |
d | 月の日 | 0 |
h | 午前/午後の時間(1〜12) | 2 |
H | 1日の時間(0〜23) | 22 |
m | 時間単位の分 | 30 |
s | 分で2番目 | 55 |
S | ミリ秒 | 234 |
E | 曜日 | 火曜日 |
D | 年間の日 | 360 |
F | 月の曜日 | 2(7月第2水曜日) |
w | 年間の週 | 40 |
W | 月の週 | |
a | AM / PMマーカー | 午後 |
k | 1日の時間(1〜24) | 24 |
K | 午前/午後の時間(0〜11) | 0 |
z | タイムゾーン | 東部標準時 |
' | テキストのエスケープ | デリミタ |
「」 | 一重引用符 | ` |
日付を操作するために使用可能な定数メソッドの完全なリストについては、標準のJavaドキュメントを参照してください。