发布于 2015-08-17 14:45:56 | 276 次阅读 | 评论: 0 | 来源: 网络整理
其中一个使用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 |
要指定时间格式使用时间模式字符串。在这个模式中,所有的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文档。