English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Servletを使用する最も重要な利点の1つは、コアJavaのほとんどの利用可能なメソッドを使用できることです。本章では、Javaが提供する java.util パッケージの Date クラス、このクラスは現在の日付と時間をエンケapsulatingします。
Dateクラスは2つのコンストラクタをサポートしています。最初のコンストラクタは現在の日付と時間のオブジェクトを初期化します。
Date( )
以下のコンストラクタは、パラメータが 197getTime( ) メソッドを使用して、2つのオブジェクトが自 1 0 年 1 日午前0時からの経過ミリ秒数
Date(long millisec)
一旦Dateオブジェクトが利用可能であれば、以下の任意のメソッドを呼び出して日付を使用できます:
番号 | メソッド & 説明 |
---|---|
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) 呼び出しオブジェクトの値とdateの値を比較します。値が等しい場合、0を返します。呼び出しオブジェクトがdateよりも前の場合、負の値を返します。呼び出しオブジェクトがdateよりも後の場合、正の値を返します。 |
5 | int compareTo(Object obj) objがDateクラスの場合、操作はcompareTo(Date)と同じです。そうでない場合はClassCastExceptionが投げられます。 |
6 | boolean equals(Object date) 呼び出し中のDateオブジェクトに含まれる日付と時間がdateで指定された日付と同じであればtrueを、そうでなければfalseを返します。 |
7 | long getTime( ) 返します 197getTime( ) メソッドを使用して、2つのオブジェクトが自 1 0 年 1 日午前0時からの経過ミリ秒数 |
8 | int hashCode( ) 呼び出しオブジェクトにハッシュコードを返します。 |
9 | void setTime(long time) timeで指定された日付と時間を設定し、これは 197getTime( ) メソッドを使用して、2つのオブジェクトが自 1 0 年 1 日午前0時からの経過時間(ミリ秒単位で) |
10 | String toString( ) Dateオブジェクトを文字列に変換し、結果を返します。 |
Java Servletで現在の日付と時間を取得することは非常に簡単です。単純なDateオブジェクトを使用して toString() toString()
package com.w;3codebox.test; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet 実装クラス CurrentDate */ @WebServlet("/CurrentDate") public class CurrentDate extends HttpServlet { private static final long serialVersionUID = 1L; public CurrentDate() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8-8"); PrintWriter out = response.getWriter(); String title = "表示現在の日付と時間"; 方法を使用して現在の日期と時間を出力する例を示します: String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor="#f0f0f0">\n" + "<h1 align="center">" + title + "</h1>\n" + "<h2 align="center">" + Date date = new Date(); + "</h2>\n" + "</body></html>); } }
date.toString()
現在、上記の Servlet をコンパイルし、web.xml ファイルで適切なエントリを作成してみましょう:1<?xml version="-8.0" encoding="UTF "?>-web <web servlet>-<servlet/pattern>-name>CurrentDate< servlet>-<servlet>3class>com.w/pattern>-codebox.test.CurrentDate< mapping>/class> servlet>-servlet servlet>-<servlet/pattern>-name>CurrentDate< name>-url/TomcatTest/<url/CurrentDate<-url mapping>/pattern>-servlet mapping>/<-web
app>//localhost:8080/TomcatTest/CurrentDateを使用してこのServletを呼び出します。これにより、以下のような結果が得られます:
URL http: をアクセスして、//localhost:8080/TomcatTest/URL http: をリフレッシュしようとするときに、
日期比較
正如上面所提到的,Servlet ですべての利用可能な Java メソッドを使用することができます。2つの日期を比較するには、以下の方法があります: 197getTime( ) メソッドを使用して、2つのオブジェクトが自 1 0 年 1 月
before( )、after( )、equals( ) メソッドを使用することができます。1ヶ月の間に日が午前0時に経過した時間(ミリ秒単位)で、その2つの値を比較します。 12 号在 18 号之前,例如,new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回 true。
Comparable インターフェースで定義され、Date で実装された compareTo( ) メソッドを使用することができます。
SimpleDateFormat は、言語環境に依存して日期と時間をフォーマットし解析する具体的なクラスです。SimpleDateFormat は、ユーザー定義の任意の日期と時間のフォーマットを選択することができます。
让我们修改上面的示例,如下所示:
package com.w;3codebox.test; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet 実装クラス CurrentDate */ @WebServlet("/CurrentDate") public class CurrentDate extends HttpServlet { private static final long serialVersionUID = 1L; public CurrentDate() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8-8"); PrintWriter out = response.getWriter(); String title = "表示現在の日付と時間"; Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd hh:mm:ss E a "); String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor="#f0f0f0">\n" + "<h1 align="center">" + title + "</h1>\n" + "<h2 align="center">" + ft.format(dNow) + "</h2>\n" + "</body></html>); } }
上記のServletを再コンパイルし、http:を通じてアクセスして、//localhost:8080/TomcatTest/CurrentDateを使用してこのServletを呼び出します。これにより、以下のような結果が得られます:
イベントパターン文字列を使用して時間形式を指定します。このモードでは、すべてのASCII文字がパターン文字として保持され、以下のように定義されます:
文字 | 説明 | 例 |
---|---|---|
G | 時代指標 | AD |
y | 四桁の年 | 2001 |
M | 一年の中の月 | 七月または07 |
d | 一月の中の何日目 | 10 |
h | A.M.付き/P.M.の時間(1~12) | 12 |
H | 一日の中の何時(0~23) | 22 |
m | 一小时の中の何分目 | 30 |
s | 一分の中の何秒目 | 55 |
S | ミリ秒 | 234 |
E | 週の中の何曜日 | 火曜日 |
D | 一年の中の何日目 | 360 |
F | その週はその月の何週目 | 2 (七月の第二水曜日) |
w | 一年の中の何週目 | 40 |
W | 一月の中の何週目 | 1 |
a | A.M./P.M.のマーク | PM |
k | 一日の中の何時(1~24) | 24 |
K | A.M.付き/P.M.の時間(0~11) | 10 |
z | 時区 | 東部標準時 |
' | テキストのエスケープ | 区切り文字 |
" | シングルクォート | ` |
利用可能な処理日付メソッドの完全なリストを確認するには、標準のJavaドキュメントを参照してください。