JSP處理日期


以下內容引用自http://wiki.jikexueyuan.com/project/jsp/handling-date.html

使用JSP的一個最重要的優點是,可以使用核心Java中所有有效的方法。本教程將使用Java提供的Date類,它在java.util包是有效的,這個類封裝了當前的日期和時間。

這個Date類支持兩種構造函數。第一種構造函數是初始化當前日期和時間的對象。

Date( )

下面的構造函數是設置一個參數,該參數是從1970年1月1日凌晨0點開始至今的毫秒數。

Date(long millisec)

一旦有一個有效的Date對象,就可以調用以下任何支持的方法實現日期:

方法 描述

boolean after(Date date)

如果調用的Date對象包含的日期晚於指定的日期,則返 true,否則返回false。

boolean before(Date date)

如果調用的Date對象包含的日期早於指定的日期,則返回true,否則返回false。

Object clone( )

重復調用的Date對象。

int compareTo(Date date)

比較調用的Date對象與Date的值。如果值是相等的,則返回0。如果調用的Date對象比Date更早,則返回一個負數。如果調用Date 對象是晚於Date的,則返回一個正數。

int compareTo(Object obj)

如果obj是Date類,則操作與compareTo(Date)是同一個,否則拋出ClassCastException異常。

boolean equals(Object date)

如果調用的Date對象與指定的日期有相同的時間和日期,則返回true,否則返回false。

long getTime( )

返回從1970年1月1日凌晨0點開始至今的毫秒數。

int hashCode( )

返回調用對象的哈希編碼

void setTime(long time)

由指定的時間設置時間和日期,它表示從1970年1月1日凌晨0點開始到指定時間的毫秒數。

String toString( )

轉換調用的Date對象到String類型,並且返回該結果。

一、得到當前日期&時間

在JSP程序中,很容易得到當前日期和時間。可以使用一個簡單的Date對象調用toString()方法來輸出當前的日期和時間,如下所示:

<%@ page import="java.io.*,java.util.*" %>
<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:http://localhost:8080/CurrentDate.jsp來調用此JSP。將產生如下結果:

嘗試刷新URL:http://localhost:8080/CurrentDate.jsp,將會發現每一次刷新都會有幾秒鍾的區別。

二、日期比較

正如上面提到的,可以使用所有有效的Java方法在Script中。如果需要比較兩個日期,下面是方法:

  • 可以用getTime()方法分別獲得這兩個對象從1970年1月1日凌晨0點開始至今的毫秒數,然后比較這兩個值。

  • 可以使用方法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="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>

使用URL:http://localhost:8080/CurrentDate.jsp,將產生如下結果:

四、Simple DateFormat格式化代碼

指定時間格式使用一個時間模式字符串。在這個模式中,所有ASCII字母被保留為模式字母,它們被定義為如下:

字符 描述 例子
G 時代指示符 AD
y 四位數的某年 2001
M 一年中的某月 July or 07
d 一月中的某日 10
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 一月中的某周 1
a A.M./P.M.標記 PM
k 一天(1~24)中的某小時 24
K A.M./P.M. (0~11)的某小時 10
z 時區 Eastern Standard Time
' 消逝的文本 Delimiter
" 單引號 `

對於一個用不變且有效的方法來操作日期的完整清單,可以參考標准的Java文檔。

 

測試工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test12


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM