日期时间处理
Servlet 最大的优势就是可以使用 Java 中的大多数可用的方法。处理时间也是非常的方便。处理时间一般是用Date类。首先介绍一下Date类的方法如下:
1.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 之前,则返回一个负值。如调用对象在 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)设置 time 指定的时间和日期,这表示从 1970 年 1 月 1 日午夜以来经过的时间(以毫秒为单位)。 |
10 | String toString( )转换调用的 Date 对象为一个字符串,并返回结果。 |
2。格式化时间
使用 SimpleDateFormat 格式化日期 SimpleDateFormat 是一个以语言环境敏感的方式来格式化和解析日期的具体类。 SimpleDateFormat 允许您选择任何用户定义的日期时间格式化的模式。
简单的日期格式的格式代码:
字符 | 描述 | 实例 |
G | Era 指示器 | AD |
y | 四位数表示的年 | 2001 |
M | 一年中的月 July 或 | 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 |
’ | Escape for text | Delimiter |
" | 单引号 | ` |
3.实例
package datedeal;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Date")
public class DateDeal extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Date date=new Date(); //当前时间
response.setContentType("text/html;charset=UTF-8"); //设置页面编码
response.setHeader("Refresh","1"); //设置页面刷新时间
SimpleDateFormat ft=new SimpleDateFormat ("yyyy.MM.dd '--' hh:mm:ss "); //设置时间格式
//response.setCharacterEncoding("utf-8");
PrintWriter out=response.getWriter(); //取输出流对象一定要在设置编码格式之后
out.println("<!DOCTYPE html>\r\n" +
"<html>\r\n" +
"<head>\r\n" +
"<meta charset=\"UTF-8\">\r\n" +
"<title>当前时间</title>\r\n" +
"</head>\r\n" +
"<body>"+
"<h1 align=\"center\"><b>当前时间:</b></h>"+ft.format(date)+
"</body>\r\n" +
"</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
!小细节:在从 HttpServletResponse 对象获得输出流对象一定要在设置返回页面格式,编码之后。否则流对象输出的字符编码很有可能和页面编码不匹配而出现乱码。