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

JSP 日期処理

JSPを使用する最も重要な利点の1つは、すべてのJava APIを使用できることです。この章では、java.utilパッケージの下にあるDateクラスについて詳しく説明します。このクラスは現在の日付と時間をエンケードしています。

Dateクラスには2つのコンストラクタがあります。第1のコンストラクタは現在の日付と時間を使用してオブジェクトを初期化します。

Date( )

第2のコンストラクタは、以下から指定されたパラメータを受け取ります1970年1月1今朝から所要表示の時間までのミリ秒数です。

Date(long millisec)

Dateオブジェクトを取得した後、以下に示すすべてのメソッドを使用できます:

番号メソッド & 説明
                1boolean after(Date date) 指定された日付より遅い場合trueを、そうでない場合falseを返します
                2boolean before(Date date) 指定された日付より早い場合trueを、そうでない場合falseを返します
                3Object clone( ) 現在のオブジェクトのコピーを取得します
                4int compareTo(Date date) 指定された日付と等しい場合0を、指定された日付より早い場合負の数を、指定された日付より遅い場合正の数を返します
                5int compareTo(Object obj) compareTo(Date)メソッドと同じです。objがDateクラスまたはそのサブクラスのオブジェクトでない場合、ClassCastExceptionをスローします
                6boolean equals(Object date) 指定された日付と同じ場合trueを、そうでない場合falseを返します
                7long getTime( ) 以下から返します1970年1月1今朝からこのオブジェクトが表す時間までのミリ秒数
                8int hashCode( ) このオブジェクトのハッシュコードを返します
                9void setTime(long time) 指定された引数を使用して時間と日付を設定します。引数timeは、凌晨からtimeまでのミリ秒数を表します。1970年1月1凌晨からtimeまでのミリ秒数
                10String toString() このオブジェクトを文字列に変換し、その文字列を返します。

    現在の日付と時刻を取得

JSPプログラミングを使用して、DateオブジェクトのtoString()メソッドを使用して簡単に現在の日付と時刻を取得できます。以下のように:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*, javax.servlet.*"%>
<html>
<head>
<title>表示現在の日付と時刻</title>
</head>
<body>
<h1>表示現在の日付と時刻</h1>
<%
   Date date = new Date();
   out.print("<h2 align="center">" +date.toString()+"</h2>
%>
</body>
</html>

上記のコードをmain.jspファイルに保存し、アクセスして http://localhost:8080/testjsp/main.jsp、実行結果は以下の通りです:

現在の時間と日付を表示するには、以下のようにします:
Sat Jun 25 17:54:34 CST 2019

リフレッシュ http://localhost:8080/testjsp/main.jspをクリックすると、リフレッシュで得られる秒数が異なることがわかります。

日期比較

私が最初に言ったように、JSPスクリプトではJavaのメソッドを使用することができます。二つの日期を比較する場合は、

以下の方法を参照してください:

  •             )メソッドを使用してミリ秒数を取得し、そのミリ秒数を比較します。

  •             before()、after()、equals()メソッドを使用します。例えば、new Date(99,2,12).before(new Date(99,2,18))がtrueを返します。

  •             compareTo()メソッドを使用します。このメソッドはComparableインターフェースで定義され、Dateクラスで実装されています。

    SimpleDateFormatを使用して日付をフォーマット

SimpleDateFormatを使用して地域に依存する方法で日付と時刻をフォーマットおよび解析します。これにより、カスタムのパターンを使用して日付と時刻をフォーマットすることができます。

对CurrentDate.jsp稍作修改,得到如下修改后的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*"%>
<%@ page import="javax.servlet.*,java.text.*"%>
<html>
<head>
<title>表示現在の日付と時刻</title>
</head>
<body>
<h1>表示現在の日付と時刻</h1>
<%
   Date dNow = new Date();
   SimpleDateFormat ft = 
   new SimpleDateFormat("yyyy"-MM-dd HH:mm:ss");
   out.print("<h2 align="center">" + ft.format(dNow) + "</h2>
%>
</body>
</html>

main.jsp を再コンパイルして、アクセスする http://localhost:8080/testjsp/main.jsp、次のような結果が得られます:

現在の時間と日付を表示するには、以下のようにします:
2019-06-25 17:57:53

SimpleDateFormat フォーマットコード

パターン文字列を指定するには、以下のフォーマットコードを使用する必要があります:

文字説明
                G                時代識別子                AD
                y                4桁数年                2001
                M                月                July or 07
                d                日                10
                h                1224時間制、A.M./P.M. (1~12)                12
                H                2424時間制                22
                m                分                30
                s                秒                55
                S                ミリ秒                234
                E                曜日                火曜日
                D                年の中の特定の日                360
                F                月の中の特定の週の日                2 (7月の第2水曜日)
                w                年の中の特定の週                40
                W                月の中の特定の週                1
                a                A.M./P.M. マーク                PM
                k                一日の中の特定の時間 (1~24)                24
                K                一日の中の特定の時間、A.M./P.M. (0~11)                10
                z                時区                Eastern Standard Time
                '                テキスト区切り                区切り文字
                "                シングルクォート                `

Dateクラスに関する詳細については、Java APIドキュメントを参照してください。