JSP处理日期
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/handling-date.html:
使用JSP的一个最重要的优点是,可以使用核心Java中所有有效的方法。本教程将使用Java提供的Date类,它在java.util包是有效的,这个类封装了当前的日期和时间。
这个Date类支持两种构造函数。第一种构造函数是初始化当前日期和时间的对象。
Date( )
下面的构造函数是设置一个参数,该参数是从1970年1月1日凌晨0点开始至今的毫秒数。
Date(long millisec)
一旦有一个有效的Date对象,就可以调用以下任何支持的方法实现日期:
| 方法 | 描述 |
|---|---|
|
boolean after(Date date) |
如果调用的Date对象包含的日期晚于指定的日期,则返 true,否则返回false。 |
|
boolean before(Date date) |
如果调用的Date对象包含的日期早于指定的日期,则返回true,否则返回false。 |
|
Object clone( ) |
重复调用的Date对象。 |
|
int compareTo(Date date) |
比较调用的Date对象与Date的值。如果值是相等的,则返回0。如果调用的Date对象比Date更早,则返回一个负数。如果调用Date 对象是晚于Date的,则返回一个正数。 |
|
int compareTo(Object obj) |
如果obj是Date类,则操作与compareTo(Date)是同一个,否则抛出ClassCastException异常。 |
|
boolean equals(Object date) |
如果调用的Date对象与指定的日期有相同的时间和日期,则返回true,否则返回false。 |
|
long getTime( ) |
返回从1970年1月1日凌晨0点开始至今的毫秒数。 |
|
int hashCode( ) |
返回调用对象的哈希编码 |
|
void setTime(long time) |
由指定的时间设置时间和日期,它表示从1970年1月1日凌晨0点开始到指定时间的毫秒数。 |
|
String toString( ) |
转换调用的Date对象到String类型,并且返回该结果。 |
一、得到当前日期&时间
在JSP程序中,很容易得到当前日期和时间。可以使用一个简单的Date对象调用toString()方法来输出当前的日期和时间,如下所示:
<%@ page import="java.io.*,java.util.*" %>
<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。将产生如下结果:

尝试刷新URL:http://localhost:8080/CurrentDate.jsp,将会发现每一次刷新都会有几秒钟的区别。
二、日期比较
正如上面提到的,可以使用所有有效的Java方法在Script中。如果需要比较两个日期,下面是方法:
可以用getTime()方法分别获得这两个对象从1970年1月1日凌晨0点开始至今的毫秒数,然后比较这两个值。
可以使用方法before(),after()和equals()。因为每月的12日在18日之前,例如,new Date(99,2,12).before(new Date(99,2,18)),返回 true。
- 可以使用compareTo()方法,它由Comparable接口定义并且由Date实现。
三、用SimpleDateFormat实现日期格式化
SimpleDateFormat是用对语言环境敏感的方式来格式化和解析日期的具体类。SimpleDateFormat允许对日期时间格式来选择任何用户定义的模式开始。
修改上面的例子,如下所示:
<%@ page import="java.io.*,java.util.*" %>
<%@ page import="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>
使用URL:http://localhost:8080/CurrentDate.jsp,将产生如下结果:

四、Simple DateFormat格式化代码
指定时间格式使用一个时间模式字符串。在这个模式中,所有ASCII字母被保留为模式字母,它们被定义为如下:
| 字符 | 描述 | 例子 |
|---|---|---|
| G | 时代指示符 | AD |
| y | 四位数的某年 | 2001 |
| M | 一年中的某月 | July or 07 |
| d | 一月中的某日 | 10 |
| h | A.M./P.M. (1~12)的某小时 | 12 |
| H | 一天 (0~23)中的某小时 | 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 |
| " | 单引号 | ` |
对于一个用不变且有效的方法来操作日期的完整清单,可以参考标准的Java文档。
测试工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test12
JSP处理日期的更多相关文章
- JSP JS 日期控件的下载、使用及注意事项
网上流行的时间日期控件比较多,个人觉得My97DatePicker的日期控件不错,值得推荐. 具体的使用过程如下: 1.下载My97DatePicker.rar或 My97DatePickerBeta ...
- js jsp 时间 日期 控件 插件 简单 实用
js时间控件一般都是找网上的用,这东西平常很少涉及到,一用到找起来却烦死人,不是没用就是太复杂,今天向大家推荐一个简单实用的控件,该控件在不断更新,而且有专门的网站对它进行维护,所以值得一看. 先说它 ...
- jsp页面日期格式不正确
第一种: 如果是从数据库获取的时间(数据库中日期格式是乱的)可以在数据库取数据时 进行格式化 例如 ;TO_CHAR(SYSDATE,'YYYY-MM-DD') 第二种: 在数据库取出数据后 ...
- struts2 jsp提交日期类型转换及国际化实现
概述:下面通过jsp提交输入注册信息信息,同时完成过程文件国家化问题演示说明.[注册日期转换用注解方式实现] 工程截图: 注册页面jsp文件: <%@ page language="j ...
- jsp格式化日期
1.先引入JSTL库 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> ...
- JSP的体系结构
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/architecture.html: Web服务器需要一个JSP引擎,即处理JSP页面的容器.JSP容器负 ...
- struts2各个功能详解(1)----参数自动封装和类型自动转换
struts2里面的各个功能,现在确实都不清楚,完全属于新学! 通过前面的例子,有时就会疑问,这些jsp中的数据信息是怎么传送给action的?例如: <form action = " ...
- jQuery easyUI的datagrid,如何在翻页以后仍能记录被选中的行
1.先给出问题解决后的代码 <%@ page language="java" import="java.util.*" pageEncoding=&quo ...
- EL_JSTL
EL(Expression Language)EL表达式 作用:在JSP中消灭java代码 语法: "${ }" 用法:参考jsp页面 //Servlet中,: User user ...
随机推荐
- openmv第一次调试
2018-09-19 20:14:51 import sensor, image, time import car import json import time from pyb import U ...
- Microsoft SQL Server学习(二)
目录 关于数据库的语法: 1.创建数据库 create database 数据库名 on primary (主文件属性(name,filename,size等)) -用逗号隔开次要主要文件和次要文件 ...
- Node.js——防盗链
防盗链可以通过判断请求头中携带的referrer是否属于本域名
- @import与link方式的区别
1. 老祖宗的差别.link属于XHTML标签,而@import完全是CSS提供的一种方式. link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@impo ...
- 浅谈kernel的结构图及生成过程-----(1)
当今,我们身边如此多的服务器,工作站都运行着linux,因此也有不少的朋友想了解linux内的核心机理.但是由于kernel过于庞大,以致让一些朋友望而却步.(我在大二的时候也有过此经历,当时看到一些 ...
- faster rcnn一些博客
这个是对faster 问题的一个总结 http://blog.csdn.net/u010402786/article/details/72675831?locationNum=11&fps=1 ...
- 网页显示403. That’s an error的解决方法。
使用Go*gent打开网页,经常出现403. That’s an error.下面是解决的方法. 方法/步骤 一.打开Go*gent的文件目录.不知道找文件目录的,可以在桌面上右键点击Go*g ...
- 开源敏捷测试管理& 开源BUG跟踪管理软件itest(爱测试) V3.3.0隆重发布
v3.3.0 下载地址 :itest下载 码云源码地址 https://gitee.com/itestwork/itest 开源中国 itest项目地址 https://www.oschina. ...
- 我能考虑到的数组(老)方法就这些了(es5)
代码注释都写的很清楚了 关键字:斐波那契数组.二维数组.多维数组(矩阵)... <!DOCTYPE html> <html lang="en"> <h ...
- uLua-案例学习-API
LuaState.Start()初始化吧 LuaState.AddSearchPath(string fullPath)增加搜索路径,这样在执行lua文件时就不需要输入全路径,类似环境变量path. ...