非常教程

JSP 教程教程

JSP 日期处理

JSP 日期处理

JSP 日期处理

使用JSP最重要的优势之一,就是可以使用所有Java  API。本章将会详细地讲述Java中的Date类,它在java.util包下,封装了当前日期和时间。

Date类有两个构造函数。第一个构造函数使用当前日期和时间来初始化对象。

Date( )

第二个构造函数接受一个参数,这个参数表示从1970年1月1日凌晨至所要表示时间的毫秒数。

Date(long millisec)

获取Date对象后,您就能够使用下表列出的所有方法:

序号 方法 & 描述
1 boolean after(Date date)

如果比给定的日期晚,则返回true,否则返回false
2 boolean before(Date date)

如果比给定的日期早,则返回true,否则返回false
3 Object clone( )

获取当前对象的一个副本
4 int compareTo(Date date)

如果与给定日期相等,则返回0,如果比给定日期早,则返回一个负数,如果比给定日期晚,则返回一个正数
5 int compareTo(Object obj)

与 compareTo(Date) 方法相同,如果 obj 不是Date类或其子类的对象,抛出ClassCastException异常
6 boolean equals(Object date)

如果与给定日期相同,则返回true,否则返回false
7 long getTime( )

返回从1970年1月1日凌晨至此对象所表示时间的毫秒数
8 int hashCode( )

返回此对象的哈希码
9 void setTime(long time)

使用给定参数设置时间和日期,参数time表示从1970年1月1日凌晨至time所经过的毫秒数
10 String toString( )

将此对象转换为字符串并返回这个字符串

获取当前日期和时间

使用JSP编程可以很容易的获取当前日期和时间,只要使用Date对象的toString()方法就行了,就像下面这样:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*, javax.servlet.*" %>
<html>
<head>
<title>显示当前时间与日期</title>
</head>
<body>

<h1>显示当前时间与日期</h1>

<%
   Date date = new Date();
   out.print( "<h2 align=\"center\">" +date.toString()+"</h2>");
%>
</body>
</html>

将上面的代码保存在 main.jsp 文件中,然后访问 http://localhost:8080/testjsp/main.jsp,运行结果如下:

显示当前时间与日期

Sat Jun 25 17:54:34 CST 2016

刷新 http://localhost:8080/testjsp/main.jsp,就可以发现每次刷新所得到的秒数都不相同。


日期比较

就像我在开头所提到的,您可以在JSP脚本中使用任何Java方法。如果您想要比较两个日期,

可以参照下面的方法来做:

  • 使用getTime()方法得到毫秒数,然后比较毫秒数就行了。
  • 使用before(),after(),equals()方法。比如,new Date(99,2,12).before(new Date(99,2,18))返回true。
  • 使用compareTo()方法,这个方法在Comparable接口中定义,在Date中实现。

使用SimpleDateFormat格式化日期

SimpleDateFormat使用一种地区敏感的方式来格式化和解析日期,它允许您使用自定义的模式来格式化日期和时间。

对CurrentDate.jsp稍作修改,得到如下修改后的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<%@ page import="javax.servlet.*,java.text.*" %>
<html>
<head>
<title>显示当前时间与日期</title>
</head>
<body>

<h1>显示当前时间与日期</h1>

<%
   Date dNow = new Date( );
   SimpleDateFormat ft = 
   new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
   out.print( "<h2 align=\"center\">" + ft.format(dNow) + "</h2>");
%>

</body>
</html>

再次编译 main.jsp,然后访问 http://localhost:8080/testjsp/main.jsp,就可以得到如下结果:

显示当前时间与日期

2016-06-25 17:57:53

SimpleDateFormat格式码

要指定模式字符串,需要使用下表列出的格式码:

字符 描述 示例
G 时代标识符 AD
y 4位数年份 2001
M July or 07
d 10
h 12小时制, A.M./P.M. (1~12) 12
H 24小时制 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
" 单引号 `

更多关于Date类的详细信息请查阅Java API文档。

JSP 日期处理
JSP 教程

JSP,即 Java Server Pages,是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的 Web 网页的技术标准。

JSP 教程目录

1.JSP 简介
2.JSP 教程
3.JSP 隐式对象
4.JSP 指令
5.JSP 发送邮件
6.JSP 自动刷新
7.JSP 页面重定向
8.JSP 日期处理
9.JSP 国际化
10.JSP 调试
11.JSP 自定义标签
12.<c:forEach>, <c:forTokens> 标签
13.<c:import> 标签
14.<c:choose>, <c:when>, <c:otherwise> 标签
15.<c:if> 标签
16.<c:catch> 标签
17.<c:remove> 标签
18.<c:set> 标签
19.<c:out> 标签
20.<fmt:setBundle> 标签
21.<fmt:setLocale> 标签
22.<fmt:bundle> 标签
23.<fmt:parseDate> 标签
24.<fmt:formatDate> 标签
25.<fmt:parseNumber> 标签
26.<fmt:formatNumber> 标签
27.<c:redirect> 标签
28.<c:url> 标签
29.<c:param> 标签
30.<sql:transaction> 标签
31.<sql:dateParam> 标签
32.<sql:param> 标签
33.<sql:update> 标签
34.<sql:query> 标签
35.<sql:setDataSource> 标签
36.<fmt:requestEncoding> 标签
37.<fmt:message> 标签
38.<fmt:setTimeZone> 标签
39.<fmt:timeZone> 标签
40.JSTL fn:containsIgnoreCase()函数
41.JSTL fn:contains()函数
42.<x:param> 标签
43.<x:transform> 标签
44.<x:choose>, <x:when>, <x:otherwise> 标签
45.<x:forEach> 标签
46.<x:if> 标签
47.<x:set> 标签
48.<x:parse> 标签
49.<x:out> 标签
50.JSTL fn:substringAfter()函数
51.JSTL fn:substring()函数
52.JSTL fn:startsWith()函数
53.JSTL fn:split()函数
54.JSTL fn:replace()函数
55.JSTL fn:length()函数
56.JSTL fn:join()函数
57.JSTL fn:indexOf()函数
58.JSTL fn:escapeXml()函数
59.JSTL fn:endsWith()函数
60.JSP 标准标签库(JSTL)
61.JSTL fn:trim()函数
62.JSTL fn:toUpperCase()函数
63.JSTL fn:toLowerCase()函数
64.JSTL fn:substringBefore()函数