English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Servlet日付処理

Servletを使用する最も重要な利点の1つは、コアJavaのほとんどの利用可能なメソッドを使用できることです。本章では、Javaが提供する java.util パッケージの Date クラス、このクラスは現在の日付と時間をエンケapsulatingします。

Dateクラスは2つのコンストラクタをサポートしています。最初のコンストラクタは現在の日付と時間のオブジェクトを初期化します。

Date( )

以下のコンストラクタは、パラメータが 197getTime( ) メソッドを使用して、2つのオブジェクトが自 1 0 年 1 日午前0時からの経過ミリ秒数

Date(long millisec)

一旦Dateオブジェクトが利用可能であれば、以下の任意のメソッドを呼び出して日付を使用できます:

番号メソッド & 説明
1boolean after(Date date)
呼び出し中のDateオブジェクトに含まれる日付がdateで指定された日付よりも後であればtrueを、そうでなければfalseを返します。
2boolean before(Date date)
呼び出し中のDateオブジェクトに含まれる日付がdateで指定された日付よりも前であればtrueを、そうでなければfalseを返します。
3Object clone( )
Dateオブジェクトを繰り返し呼び出します。
4int compareTo(Date date)
呼び出しオブジェクトの値とdateの値を比較します。値が等しい場合、0を返します。呼び出しオブジェクトがdateよりも前の場合、負の値を返します。呼び出しオブジェクトがdateよりも後の場合、正の値を返します。
5int compareTo(Object obj)
objがDateクラスの場合、操作はcompareTo(Date)と同じです。そうでない場合はClassCastExceptionが投げられます。
6boolean equals(Object date)
呼び出し中のDateオブジェクトに含まれる日付と時間がdateで指定された日付と同じであればtrueを、そうでなければfalseを返します。
7long getTime( )
返します 197getTime( ) メソッドを使用して、2つのオブジェクトが自 1 0 年 1 日午前0時からの経過ミリ秒数
8int hashCode( )
呼び出しオブジェクトにハッシュコードを返します。
9void setTime(long time)
timeで指定された日付と時間を設定し、これは 197getTime( ) メソッドを使用して、2つのオブジェクトが自 1 0 年 1 日午前0時からの経過時間(ミリ秒単位で)
10String 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: をリフレッシュしようとするときに、

CurrentDate、数秒ごとにリフレッシュすると、表示される時間の差が見られます。

日期比較

  • 正如上面所提到的,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 は、言語環境に依存して日期と時間をフォーマットし解析する具体的なクラスです。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
hA.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
aA.M./P.M.のマークPM
k一日の中の何時(1~24)24
KA.M.付き/P.M.の時間(0~11)10
z時区東部標準時
'テキストのエスケープ区切り文字
"シングルクォート`

利用可能な処理日付メソッドの完全なリストを確認するには、標準のJavaドキュメントを参照してください。