当前位置:首页 > JSP教程 > JSP基础教程

JSP处理日期

在本章中,我们将讨论如何处理jsp中的数据。 使用jsp最重要的优点之一就是可以使用核心java中的所有可用方法。我们将浏览java.util包中提供的date类; 这个类封装了当前的日期和时间。

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

date( )

以下构造函数接受一个等于从1970年1月1日午夜以来经过的毫秒数的参数。

date(long millisec)

当实现一个date对象后,就可以调用以下任何支持方法来操作日期 -

编号 方法 描述
1 boolean after(date date) 如果调用的date对象包含的日期晚于date指定的日期,则返回true,否则返回false。
2 boolean before(date date) 如果调用的date对象包含早于date指定的日期,则返回true,否则返回false。
3 object clone( ) 复制调用date对象。
4 int compareto(date date) 将调用对象的值与date对应的值进行比较。 如果值相等,则返回0。 如果调用对象早于date,则返回负值。 如果调用对象晚于日期,则返回正值。
5 int compareto(object obj) 如果obj是类date的对象,则与compareto(date)的操作相同。 否则会引发classcastexception。
6 boolean equals(object date) 如果调用的date对象包含与date指定的时间和日期相同的时间和日期,则返回true,否则返回false。
7 long gettime( ) 返回从1970年1月1日起经过的毫秒数。
8 int hashcode( ) 返回调用对象的哈希码。
9 void settime(long time) 设置时间指定的时间和日期,表示从1970年1月1日午夜开始的以毫秒为单位的经过时间
10 string tostring( ) 将调用的date对象转换为字符串并返回结果。

为了方便演示下面的示例,我们打开eclipse创建一个动态web项目:handlingdate,并在这个项目中创建对应的示例jsp页面作为演示。

获取当前日期和时间

使用jsp程序,很容易得到当前日期和时间。 可以使用date对象的tostring()方法的来打印当前日期和时间,如下所示:

文件:curdatetime.jsp -

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%@ page import="java.io.*,java.util.*, javax.servlet.*"%>

<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>jsp获取当前时间示例</title>
</head>
<body>
    <div style="margin: auto; width: 80%">
        <center>
            <h1>显示当前日期和时间</h1>
        </center>
        <%
            date date = new date();
            out.print("<h2 align = "center">" + date.tostring() + "</h2>");
        %>
    </div>
</body>
</html>

编写完成上面代码后,然后部署项目,打开浏览器访问url: http://localhost:8080/handlingdate/curdatetime.jsp 调用此jsp。将收到以下结果 -

每次刷新时,您都会发现以秒为单位的有所变化。

日期比较

如上一节所述,可以在jsp脚本中使用所有可用的java方法。如果需要比较两个日期,请考虑以下方法 -

  • 使用gettime()方法来获取1970年1月1日午夜以后两个对象所经过的毫秒数,然后比较这两个值。
  • 使用before(),after()和equals()方法,因为本月十二号是在18日之前; 例如,新的date(1999,2,12).before(new date(1999,2,18))返回true。
  • 使用compareto()方法; 该方法由comparable接口定义,并由date实现。

使用simpledateformat格式化日期

simpledateformat是一个具体的类,用于以区域设置方式格式化和解析日期。simpledateformat允许从选择任何用户定义的日期时间格式的模式开始。

修改上面的例子如下 -

文件:dateformatting.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.*"%>

<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>格式化日期示例</title>
</head>
<body>
    <div style="margin: auto; width: 80%">

        <center>
            <h1>当前时间格式化</h1>
        </center>
        <%
            date dnow = new date();
            simpledateformat ft = new simpledateformat("yyyy-mm-dd hh:mm:ss a zzz");
            out.print("<h2 align="center">" + ft.format(dnow) + "</h2>");
        %>
    </div>

</body>
</html>

编写完成上面代码后,然后部署项目,打开浏览器访问url: http://localhost:8080/handlingdate/dateformatting.jsp 调用此jsp。将收到以下结果 -

简单的日期格式格式代码

要指定时间格式,请使用时间模式字符串。 在这种模式中,所有ascii字母都保留为模式字母,其定义如下:

字符 描述 示例
g 时代的标志 ad
y 年份四位数 2019
m 月份 july 或 07
d 月份中的天 0
h a.m./p.m.(1~12)小时格式 2
h 小时格式(0~23) 22
m 分钟小时 30
s 秒钟 55
s 毫秒 234
e 一周中的一天 tuesday
d 一年中的一天 360
f 月份中的星期 2(七月第2个周三)
w 一年中星期数 40
w 一个月
a a.m./p.m.标记 pm
k 小时(1~24) 24
k a.m./p.m.(0~11)小时形式 0
z 时区 东部标准时间
' 逃义文本 分隔符
" 单引号 `

有关操作日期的常用可用方法的完整列表,可以参考标准java文档。



【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!