使用 Servlet 的最重要的優勢之一是,可以使用核心 Java 中的大多數可用的方法。本章将講解 Java 提供的 <b>java.util</b> 包中的 <b>Date</b> 類,這個類封裝了目前的日期和時間。
Date 類支援兩個構造函數。第一個構造函數初始化目前日期和時間的對象。
下面的構造函數接受一個參數,該參數等于 1970 年 1 月 1 日午夜以來經過的毫秒數。
一旦您有一個可用的 Date 對象,您可以調用下列任意支援的方法來使用日期:
序号
方法 & 描述
1
<b>boolean after(Date date)</b>
如果調用的 Date 對象中包含的日期在 date 指定的日期之後,則傳回 true,否則傳回 false。
2
<b>boolean before(Date date)</b>
如果調用的 Date 對象中包含的日期在 date 指定的日期之前,則傳回 true,否則傳回 false。
3
<b>Object clone( )</b>
重複調用 Date 對象。
4
<b>int compareTo(Date date)</b>
把調用對象的值與 date 的值進行比較。如果兩個值是相等的,則傳回 0。如果調用對象在 date 之前,則傳回一個負值。如果調用對象在 date 之後,則傳回一個正值。
5
<b>int compareTo(Object obj)</b>
如果 obj 是 Date 類,則操作等同于 compareTo(Date)。否則,它會抛出一個 ClassCastException。
6
<b>boolean equals(Object date)</b>
如果調用的 Date 對象中包含的時間和日期與 date 指定的相同,則傳回 true,否則傳回 false。
7
<b>long getTime( )</b>
傳回 1970 年 1 月 1 日以來經過的毫秒數。
8
<b>int hashCode( )</b>
為調用對象傳回哈希代碼。
9
<b>void setTime(long time)</b>
設定 time 指定的時間和日期,這表示從 1970 年 1 月 1 日午夜以來經過的時間(以毫秒為機關)。
10
<b>String toString( )</b>
轉換調用的 Date 對象為一個字元串,并傳回結果。
在 Java Servlet 中擷取目前的日期和時間是非常容易的。您可以使用一個簡單的 Date 對象的 toString() 方法來輸出目前的日期和時間,如下所示:
現在,讓我們來編譯上面的 Servlet,并在 web.xml 檔案中建立适當的條目:
然後通過通路 http://localhost:8080/TomcatTest/CurrentDate 來調用該 Servlet。這将會産生如下的結果:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmLCZkMGBjMxgDMxEjMtMjRChTL5IkR00SQGhjNtYDRCZDNyUjNvw1Nw8CX0EDMy8CXzRWYvxGc19CX05WZ052bj1Cc39CXt92YuI2bv5Wdy5yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
嘗試重新整理 URL http://localhost:8080/TomcatTest/CurrentDate,每隔幾秒重新整理一次您都會發現顯示時間的差異。
正如上面所提到的,您可以在 Servlet 中使用所有可用的 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 允許您選擇任何使用者定義的日期時間格式化的模式。
讓我們修改上面的執行個體,如下所示:
再次編譯上面的 Servlet,然後通過通路 http://localhost:8080/TomcatTest/CurrentDate 來調用該 Servlet。這将會産生如下的結果:
使用事件模式字元串來指定時間格式。在這種模式下,所有的 ASCII 字母被保留為模式字母,這些字母定義如下:
字元
描述
執行個體
G
Era 訓示器
AD
y
四位數表示的年
2001
M
一年中的月
July 或 07
d
一月中的第幾天
h
帶有 A.M./P.M. 的小時(1~12)
12
H
一天中的第幾小時(0~23)
22
m
一小時中的第幾分
30
s
一分中的第幾秒
55
S
毫秒
234
E
一周中的星期幾
Tuesday
D
一年中的第幾天
360
F
所在的周是這個月的第幾周
2 (second Wed. in July)
w
一年中的第幾周
40
W
一月中的第幾周
a
A.M./P.M. 标記
PM
k
一天中的第幾小時(1~24)
24
K
帶有 A.M./P.M. 的小時(0~11)
z
時區
Eastern Standard Time
'
Escape for text
Delimiter
"
單引号
`
如需檢視可用的處理日期方法的完整清單,您可以參考标準的 Java 文檔。