
- JSP 基礎教程
- JSP - 首頁
- JSP - 概述
- JSP - 環境設定
- JSP - 架構
- JSP - 生命週期
- JSP - 語法
- JSP - 指令
- JSP - 動作
- JSP - 隱式物件
- JSP - 客戶端請求
- JSP - 伺服器響應
- JSP - HTTP 狀態碼
- JSP - 表單處理
- JSP - 編寫過濾器
- JSP - 處理 Cookie
- JSP - 會話跟蹤
- JSP - 檔案上傳
- JSP - 處理日期
- JSP - 頁面重定向
- JSP - 訪問計數器
- JSP - 自動重新整理
- JSP - 傳送電子郵件
- JSP 高階教程
- JSP - 標準標籤庫
- JSP - 資料庫訪問
- JSP - XML 資料
- JSP - JavaBean
- JSP - 自定義標籤
- JSP - 表示式語言
- JSP - 異常處理
- JSP - 除錯
- JSP - 安全性
- JSP - 國際化
- JSP 有用資源
- JSP - 問答
- JSP - 快速指南
- JSP - 有用資源
- JSP - 討論
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 文件。