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 & TimeMon 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 & TimeMon 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文檔。