English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Servlet의 가장 중요한 장점 중 하나는, 핵심 Java에서 사용할 수 있는 대부분의 메서드를 사용할 수 있다는 것입니다. 이 장은 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보다 앞서면 음수를 반환하고, 호출된 객체가 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 객체를 문자열로 변환하여 결과를 반환합니다. |
Java Servlet에서 현재의 날짜와 시간을 얻는 것은 매우 쉽습니다. 단순한 Date 객체의 toString() 현재 날짜와 시간을 출력하는 메서드를 다음과 같이 작성할 수 있습니다:
package com.w;3codebox.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> } }
이제, 위의 Servlet을 컴파일하고 web.xml 파일에서 적절한 항목을 생성해 보겠습니다:
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>CurrentDate</servlet-name> <servlet-class>com.w3codebox.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를 호출하여 Servlet을 호출하면 다음과 같은 결과가 생성됩니다:
URL을 새로 고침하려면 http://localhost:8080/TomcatTest/CurrentDate를 매끄럽게 갱신하면 매 번 표시된 시간 차이를 발견할 수 있습니다.
위에서 언급한 것처럼 Servlet에서 모든 사용 가능한 Java 메서드를 사용할 수 있습니다. 두 개의 날짜를 비교해야 한다면 다음과 같은 메서드가 있습니다:
getTime()를 사용하여 두 개의 객체가 1970 년 1 월 1 일 중반까지 경과한 시간(밀리초로 표현), 그런 다음 두 가지 값을 비교합니다.
before()、after() 및 equals() 메서드를 사용할 수 있습니다. 한 달 동안 12 號에 있음,예를 들어,new Date( 18 號之前,例如,new Date(99, 2, 12).before(new Date(99, 2, 18)) 반환 true.
Comparable 인터페이스에서 정의된 compareTo() 메서드를 사용할 수 있습니다. 이 메서드는 Date에서 구현됩니다.
SimpleDateFormat은 언어 환경에 민감하게 날짜를 포맷화하고 분석하는 특정 클래스입니다. SimpleDateFormat은 사용자 정의된 날짜 시간 포맷화 패턴을 선택할 수 있습니다.
让我们修改上面的示例,如下所示:
package com.w;3codebox.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> } }
위의 Servlet을 다시 컴파일한 후 http:을 통해 접근하면//localhost:8080/TomcatTest/CurrentDate를 호출하여 Servlet을 호출하면 다음과 같은 결과가 생성됩니다:
이벤트 모드 문자열을 사용하여 시간 형식을 지정합니다. 이 모드에서 모든 ASCII 문자는 모드 문자로 유지됩니다. 이 문자들은 다음과 같이 정의됩니다:
문자 | 설명 | 예제 |
---|---|---|
G | 시대 지시자 | AD |
y | 4자리 연도 표시 | 2001 |
M | 1년 중 몇 월 | July 또는 07 |
d | 1월 중 몇 일 | 10 |
h | A.M. 포함/P.M. 시간(1~12) | 12 |
H | 하루 중 몇 시간(0~23) | 22 |
m | 1시간 중 몇 분 | 30 |
s | 1분 중 몇 초 | 55 |
S | 밀리초 | 234 |
E | 주 중 몇曜일 | Tuesday |
D | 1년 중 몇 일 | 360 |
F | 의 주는 이 달의 몇 주인가요 | 2 (7월의 두 번째 월요일) |
w | 1년 중 몇 주 | 40 |
W | 1월 중 몇 주 | 1 |
a | A.M./P.M. 표시 | PM |
k | 하루 중 몇 시간(1~24) | 24 |
K | A.M. 포함/P.M. 시간(0~11) | 10 |
z | 시간대 | Eastern Standard Time |
' | 텍스트 escape | 구분자 |
" | 단 quotes | ` |
사용할 수 있는 처리 날짜 메서드의 전체 목록을 확인하려면, 표준 Java 문서를 참조하십시오.