位置:首頁 > Java技術 > JSP教學 > JSP日期Date

JSP日期Date

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

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

Date( )

下麵的構造函數接受一個參數等於自午夜以來的,1970年1月1日起已經過的毫秒數

Date(long millisec)

一旦你有一個日期對象,你可以調用以下任何一種支持的方法和時間:

SN Methods with 描述
1 boolean after(Date date)
Returns true if the invoking Date object contains a date that is later than the one specified by date, otherwise, it returns false.
2 boolean before(Date date)
Returns true if the invoking Date object contains a date that is earlier than the one specified by date, otherwise, it returns false.
3 Object clone( )
Duplicates the invoking Date object.
4 int compareTo(Date date)
Compares the value of the invoking object with that of date. Returns 0 if the values are equal. Returns a negative value if the invoking object is earlier than date. Returns a positive value if the invoking object is later than date.
5 int compareTo(Object obj)
Operates identically to compareTo(Date) if obj is of class Date. Otherwise, it throws a ClassCastException.
6 boolean equals(Object date)
Returns true if the invoking Date object contains the same time and date as the one specified by date, otherwise, it returns false.
7 long getTime( )
Returns the number of milliseconds that have elapsed since January 1, 1970.
8 int hashCode( )
Returns a hash code for the invoking object.
9 void setTime(long time)
Sets the time and date as specified by time, which represents an elapsed time in milliseconds from midnight, January 1, 1970
10 String toString( )
Converts the invoking Date object into a string and returns the result.

獲取當前日期和時間

這是很容易得到當前的日期和時間在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 http://localhost:8080/CurrentDate.jsp調用這個JSP。這將產生以下結果:

Display Current Date & Time

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

嘗試刷新網址http://localhost: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接口定義和日期執行。

使用簡單日期格式化日期:

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 http://localhost:8080/CurrentDate調用這個servlet。這將產生以下結果:

Display Current Date & Time

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

簡單DateFormat格式代碼:

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

Character 描述 Example
G Era designator AD
y Year in four digits 2001
M Month in year July or 07
d Day in month 10
h Hour in A.M./P.M. (1~12) 12
H Hour in day (0~23) 22
m Minute in hour 30
s Second in minute 55
S Millisecond 234
E Day in week Tuesday
D Day in year 360
F Day of week in month 2 (second Wed. in July)
w Week in year 40
W Week in month 1
a A.M./P.M. marker PM
k Hour in day (1~24) 24
K Hour in A.M./P.M. (0~11) 10
z Time zone Eastern Standard Time
' Escape for text Delimiter
" Single quote `

對於恒可用方法的完整列表來操作日期,你可以參考標準的Java文檔。