JSP - 處理日期



在本章中,我們將討論如何在 JSP 中處理資料。使用 JSP 的最重要優勢之一是您可以使用核心 Java 中的所有可用方法。我們將向您介紹 Date 類,該類位於 java.util 包中;此類封裝了當前日期和時間。

Date 類支援兩個建構函式。第一個建構函式使用當前日期和時間初始化物件。

Date( )

以下建構函式接受一個引數,該引數等於自 1970 年 1 月 1 日午夜以來經過的毫秒數。

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( )

返回自 1970 年 1 月 1 日以來經過的毫秒數。

8

int hashCode( )

返回呼叫物件的雜湊碼。

9

void setTime(long time)

設定由 time 指定的時間和日期,time 表示自 1970 年 1 月 1 日午夜以來的經過時間(以毫秒為單位)

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 https://:8080/CurrentDate.jsp 呼叫此 JSP。您將收到以下結果 -

Display Current Date & Time

Mon Jun 21 21:46:49 GMT+04:00 2010

使用 URL https://:8080/CurrentDate.jsp 重新整理頁面。您會發現每次重新整理時秒數都會不同。

日期比較

如前幾節所述,您可以在 JSP 指令碼中使用所有可用的 Java 方法。如果您需要比較兩個日期,請考慮以下方法 -

  • 您可以使用 getTime( ) 方法獲取自 1970 年 1 月 1 日午夜以來經過的毫秒數(對於這兩個物件),然後比較這兩個值。

  • 您可以使用 before( )after( )equals( ) 方法,因為一個月的第 12 天早於第 18 天;例如,new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回 true。

  • 您可以使用 compareTo( ) 方法;此方法由 Comparable 介面 定義,並由 Date 實現。

使用 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>

再次編譯上述 servlet,然後使用 URL https://:8080/CurrentDate 呼叫此 servlet。您將收到以下結果 -

Display Current Date & Time

Mon 2010.06.21 at 10:06:44 PM GMT+04:00

SimpleDateFormat 格式程式碼

要指定時間格式,請使用時間模式字串。在此模式中,所有 ASCII 字母都保留為模式字母,定義如下 -

字元 描述 示例
G 紀元指示符 AD
y 四位數年份 2001
M 年中的月份 七月或 07
d 月中的日期 0
h 上午/下午的小時數(1~12) 2
H 一天中的小時數(0~23) 22
m 小時中的分鐘數 30
s 分鐘中的秒數 55
S 毫秒 234
E 一週中的日期 星期二
D 年中的日期 360
F 月中的星期幾 2(七月中的第二個星期三)
w 年中的星期數 40
W 月中的星期數
a 上午/下午標記 PM
k 一天中的小時數(1~24) 24
K 上午/下午的小時數(0~11) 0
z 時區 東部標準時間
' 文字轉義 分隔符
" 單引號 `

有關可用於操作日期的完整常量方法列表,您可以參考標準 Java 文件。

廣告