서블릿 날짜 처리
코어의 가장 가능한 자바 메소드에 사용될 수 서블릿을 사용하는 중요한 장점 중 하나. 이 장에서는 현재 날짜와 시간을 캡슐화하는 자바Date 클래스에 의해 제공되는 java.util패키지를 설명합니다.
Date 클래스는 두 개의 생성자를 지원합니다. 최초의 생성자는 객체에 현재 날짜와 시간을 초기화한다.
Date( )
다음 생성자는 자정에 1970 년 1 월 1 일 이후의 경과 된 시간을 밀리 초 단위로 동일한 매개 변수를 받아들입니다.
Date(long millisec)
당신이 가능한 날짜 개체가 있으면, 당신은 지원 날짜를 사용하려면 다음 방법 중 하나를 호출 할 수 있습니다 :
序号 | 方法 & 描述 |
---|---|
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 对象为一个字符串,并返回结果。 |
현재 날짜와 시간을 가져옵니다
자바 서블릿의 현재 날짜와 시간이 매우 쉽게 가져옵니다. 다음과 같이 출력에 현재 날짜와 시간을 하나의 Date 객체의toString ()메서드를 사용할 수 있습니다 :
package com.w3big.test; import java.io.IOException; import java.io.PrintWriter; 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; /** * Servlet implementation class CurrentDate */ @WebServlet("/CurrentDate") public class CurrentDate extends HttpServlet { private static final long serialVersionUID = 1L; public CurrentDate() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String title = "显示当前的日期和时间"; Date date = new Date(); String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + title + "</h1>\n" + "<h2 align=\"center\">" + date.toString() + "</h2>\n" + "</body></html>"); } }
자, 위의 서블릿을 컴파일하고 web.xml 파일에서 해당 항목을 만들 수 있습니다 :
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>CurrentDate</servlet-name> <servlet-class>com.w3big.test.CurrentDate</servlet-class> </servlet> <servlet-mapping> <servlet-name>CurrentDate</servlet-name> <url-pattern>/TomcatTest/CurrentDate</url-pattern> </servlet-mapping> </web-app>
그런 다음 HTTP를 방문 : // localhost를 : 서블릿 8080 / TomcatTest /하는 currentDate를 호출 할 수 있습니다. 이것은 다음과 같은 결과를 생성 할 것이다 :
당신이 표시 시간을 찾을 수 있습니다 몇 초마다 차이를 새로 고침, 8080 / TomcatTest /하는 currentDate : // localhost를 다음 URL에 http 다시 시도.
날짜 비교
상술 한 바와 마찬가지로, 서블릿 가능한 모든 Java 메소드를 사용할 수있다. 두 날짜를 비교해야하는 경우 다음 방법은 다음과 같습니다 :
- 당신 년 1 월 1 일 이후, 두 객체를 얻기 위해 다음 getTime ()를 사용할 수 있습니다 (밀리 초) 1970 자정 경과 시간, 다음 두 값.
- 당신은 (), 후 ()와 같음 () 전에 방법을 사용할 수 있습니다. 예를 들어 18 일까지 12 일 이후, 새로운 날짜 (99, 2, 12) .before (새 날짜 (99, 2, 18)) 달이 true를 반환합니다.
- 당신은 날짜의 실현에 의해 Comparable 인터페이스에 의해 정의 된은 compareTo () 메소드를 사용할 수 있습니다.
형식 날짜에 사용하여 SimpleDateFormat
SimpleDateFormat의는 로케일에 의존하는 방식의 포맷과 해석 날짜에 구체적인 클래스입니다. SimpleDateFormat에 당신이 어떤 사용자 정의 날짜 및 시간 서식 패턴을 선택할 수 있습니다.
다음 이제, 위의 예를 수정할 수 :
package com.w3big.test; 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; /** * Servlet implementation class CurrentDate */ @WebServlet("/CurrentDate") public class CurrentDate extends HttpServlet { private static final long serialVersionUID = 1L; public CurrentDate() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String title = "显示当前的日期和时间"; Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd hh:mm:ss E a "); String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + title + "</h1>\n" + "<h2 align=\"center\">" + ft.format(dNow) + "</h2>\n" + "</body></html>"); } }
// 로컬 호스트 : 서블릿 8080 / TomcatTest /하는 currentDate 전화 : HTTP를 방문 후 다시 이전 서블릿을 컴파일합니다. 이것은 다음과 같은 결과를 생성 할 것이다 :
간단한 날짜 형식 코드 형식
이벤트 모드 문자열을 사용하면 시간 형식을 지정합니다. 다음이 모드에서 모든 ASCII 문자 패턴은 문자로서 예약되고, 문자가 정의된다 :
문자 | 기술 | 예 |
---|---|---|
G | 시대 표시기 | AD |
Y | 네 자리 연도 | 2,001 |
M | 올해의 달 | 아니면 7월 7일 |
디 | 달의 처음 몇 일 | (10) |
시간 | 와 AM / PM, 12 (1) 시간 | (12) |
H | 오늘의 처음 몇 시간 (0 23까지) | (22) |
m | 첫 번째 부분의 한 시간 | (30) |
에스 | 처음 몇 초에 한 점 | (55) |
에스 | 밀리 초 | (234) |
E | 주의 주 | 화요일 |
디 | 올해 처음 몇 일 | 360 |
F | 주 주입니다 이번 달 | 2 (7 월 둘째 수요일) |
w | 올해의 처음 몇 주 | (40) |
W | 월 처음 몇 주 | (1) |
AM / PM 표시 | PM | |
케이 | 오늘의 처음 몇 시간 (1 24까지) | (24) |
케이 | AM / PM 시간 (0 11까지) | (10) |
Z | 시간대 | 동부 표준시 |
' | 텍스트를 탈출 | 구분 |
" | 작은 따옴표 | ` |
볼 수있는 사용 가능한 처리 날짜 방법의 전체 목록을 보려면, 당신은 표준 자바 문서를 참조 할 수 있습니다.