Latest web development tutorials

서블릿 날짜 처리

코어의 가장 가능한 자바 메소드에 사용될 수 서블릿을 사용하는 중요한 장점 중 하나. 이 장에서는 현재 날짜와 시간을 캡슐화하는 자바Date 클래스에 의해 제공되는 java.util패키지를 설명합니다.

Date 클래스는 두 개의 생성자를 지원합니다. 최초의 생성자는 객체에 현재 날짜와 시간을 초기화한다.

Date( )

다음 생성자는 자정에 1970 년 1 월 1 일 이후의 경과 된 시간을 밀리 초 단위로 동일한 매개 변수를 받아들입니다.

Date(long millisec)

당신이 가능한 날짜 개체가 있으면, 당신은 지원 날짜를 사용하려면 다음 방법 중 하나를 호출 할 수 있습니다 :

序号方法 & 描述
1boolean after(Date date)
如果调用的 Date 对象中包含的日期在 date 指定的日期之后,则返回 true,否则返回 false。
2boolean before(Date date)
如果调用的 Date 对象中包含的日期在 date 指定的日期之前,则返回 true,否则返回 false。
3Object clone( )
重复调用 Date 对象。
4int compareTo(Date date)
把调用对象的值与 date 的值进行比较。如果两个值是相等的,则返回 0。如果调用对象在 date 之前,则返回一个负值。如果调用对象在 date 之后,则返回一个正值。
5int compareTo(Object obj)
如果 obj 是 Date 类,则操作等同于 compareTo(Date)。否则,它会抛出一个 ClassCastException。
6boolean equals(Object date)
如果调用的 Date 对象中包含的时间和日期与 date 指定的相同,则返回 true,否则返回 false。
7long getTime( )
返回 1970 年 1 月 1 日以来经过的毫秒数。
8int hashCode( )
为调用对象返回哈希代码。
9void setTime(long time)
设置 time 指定的时间和日期,这表示从 1970 年 1 月 1 日午夜以来经过的时间(以毫秒为单位)。
10String 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 시간대 동부 표준시
' 텍스트를 탈출 구분
" 작은 따옴표 `

볼 수있는 사용 가능한 처리 날짜 방법의 전체 목록을 보려면, 당신은 표준 자바 문서를 참조 할 수 있습니다.