서블릿 처리 날짜
서블릿 사용의 가장 중요한 장점 중 하나는 핵심 Java에서 사용 가능한 대부분의 메소드를 사용할 수 있다는 것입니다. 이번 장에서는 Java에서 제공하는 java.util 패키지의 Date 클래스에 대해 설명합니다. 이 클래스는 현재 날짜와 시간을 캡슐화합니다.
Date 클래스는 두 개의 생성자를 지원합니다. 첫 번째 생성자는 현재 날짜와 시간으로 개체를 초기화합니다.
Date( )
아래 생성자는 1970년 1월 1일 자정 이후 경과된 밀리초 수와 동일한 매개 변수를 허용합니다.
Date(long millisec)
Date 객체를 사용할 수 있게 되면 지원되는 다음 메서드 중 하나를 호출하여 날짜를 사용할 수 있습니다.
일련번호 | 방법 및 설명 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 td> |
호출된 Date 객체에 포함된 날짜가 date가 지정한 날짜보다 이후이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | ||||||||||||||||||||||
2 | <🎜>boolean before(Date date)<🎜> 호출된 Date 객체에 포함된 날짜가 날짜 이전의 날짜인 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다. | ||||||||||||||||||||||
3 | <🎜>Object clone( )<🎜> Date 객체를 반복적으로 호출합니다. | ||||||||||||||||||||||
4 | <🎜>int CompareTo(Date date)<🎜> 호출 객체의 값과 date의 값을 비교합니다. . 두 값이 동일하면 0이 반환됩니다. 호출 객체가 날짜보다 앞선 경우 음수 값이 반환됩니다. 호출 객체가 날짜 이후에 오면 양수 값이 반환됩니다. | ||||||||||||||||||||||
5 | <🎜>int CompareTo(Object obj)<🎜> obj가 Date 클래스인 경우 작업은 다음과 동일합니다. 비교 대상(날짜). 그렇지 않으면 ClassCastException이 발생합니다. | ||||||||||||||||||||||
6 | <🎜>boolean equals(Object 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() 메소드를 사용하여 현재 날짜와 시간을 다음과 같이 출력할 수 있습니다.
// 导入必需的 java 库 import java.io.*; import java.util.Date; import javax.servlet.*; import javax.servlet.http.*; // 扩展 HttpServlet 类 public class CurrentDate extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "显示当前的日期和时间"; Date date = new Date(); String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\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 파일을 만들고 http://localhost:8080/CurrentDate에 액세스하여 서블릿을 호출합니다. 그러면 다음과 같은 결과가 생성됩니다.
현재 날짜 및 시간 표시월 6월 21일 21:46:49 GMT+04:00 2010
|
URL http://localhost:8080/CurrentDate를 새로 고치면 몇 초마다 표시되는 시간의 차이를 확인할 수 있습니다.
날짜 비교
위에서 언급했듯이 Servlet에서는 사용 가능한 모든 Java 메소드를 사용할 수 있습니다. 두 날짜를 비교해야 하는 경우 방법은 다음과 같습니다.
getTime()을 사용하여 두 개체 단위 모두에 대해 1970년 1월 1일 자정 이후 경과 시간(밀리초)을 가져올 수 있습니다. 그런 다음 두 값을 비교합니다.
before( ), after( ), equals( ) 메소드를 사용할 수 있습니다. 예를 들어 12일이 18일 이전이므로 new Date(99, 2, 12).before(new Date (99, 2, 18))는 true를 반환합니다.
Comparable 인터페이스에 의해 정의되고 Date에 의해 구현되는 CompareTo() 메서드를 사용할 수 있습니다.
SimpleDateFormat을 사용하여 날짜 형식 지정
SimpleDateFormat은 로케일을 구분하는 방식으로 날짜 형식을 지정하고 구문 분석하기 위한 구체적인 클래스입니다. SimpleDateFormat을 사용하면 사용자 정의 날짜-시간 형식 모드를 선택할 수 있습니다.
위 인스턴스를 다음과 같이 수정해 보겠습니다.
// 导入必需的 java 库 import java.io.*; import java.text.*; import java.util.Date; import javax.servlet.*; import javax.servlet.http.*; // 扩展 HttpServlet 类 public class CurrentDate extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "显示当前的日期和时间"; Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\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>"); } }
위 서블릿을 다시 컴파일한 후 http://localhost:8080/CurrentDate에 액세스하여 서블릿을 호출합니다. 그러면 다음과 같은 결과가 생성됩니다.
현재 날짜 및 시간 표시Mon 2010.06.21 at 10:06:44 PM GMT+ 04:00
|
간단한 날짜 형식의 형식 코드
이벤트 패턴 문자열을 사용하여 시간 형식을 지정합니다. 이 모드에서는 모든 ASCII 문자가 다음과 같이 정의된 모드 문자로 예약됩니다.
字符 | 描述 | 实例 |
---|---|---|
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 |
" | 单引号 | ` |
날짜 작업에 사용 가능한 방법의 전체 목록을 보려면 표준 Java 설명서를 참조하세요.