SimpleDateFormat은 날짜와 시간을 로케일(locale)에 맞게 형식화하고 파싱하기 위한 구체 클래스(concrete class)입니다. 이 클래스를 사용하면 사용자가 직접 정의한 패턴을 자유롭게 지정하여 날짜-시간 형식을 구성할 수 있습니다.
기본적인 날짜 출력 예제에 SimpleDateFormat 패턴을 적용해 보겠습니다.
예제 코드
<%@ page import = "java.io.*,java.util.*" %>
<%@ page import = "javax.servlet.*,java.text.*" %>
<html>
<head>
<title>현재 날짜 및 시간 표시</title>
</head>
<body>
<center>
<h1>현재 날짜 및 시간 표시</h1>
</center>
<%
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
out.print( "<h2 align=\"center\">" + ft.format(dNow) + "</h2>");
%>
</body>
</html>위 코드의 핵심은 new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz") 부분입니다. 각 패턴 문자의 의미는 다음과 같습니다.
- E : 요일 (예: Mon, Tue)
- yyyy : 연도 (4자리)
- MM : 월 (2자리)
- dd : 일 (2자리)
- hh:mm:ss : 시:분:초 (12시간制)
- a : 오전/오후 표시 (AM/PM)
- zzz : 시간대 정보
작은따옴표로 감싸진 'at'처럼 패턴 문자가 아닌 일반 문자열을 출력하고 싶을 때는 작은따옴표로 묶어주면 됩니다.
코드를 저장한 후 서버를 다시 컴파일하고, 브라우저에서 https://localhost:8080/CurrentDate URL로 접속하면 아래와 같은 결과를 확인할 수 있습니다.
실행 결과
현재 날짜 및 시간 표시 Mon 2010.06.21 at 10:06:44 PM GMT+04:00
이처럼 SimpleDateFormat의 패턴 문자를 조합하면 요일, 날짜, 시간, 오전/오후, 시간대 등을 원하는 순서와 형식으로 손쉽게 출력할 수 있습니다. 필요에 따라 패턴 문자열만 변경하면 다양한 날짜 형식을 유연하게 적용할 수 있다는 점이 가장 큰 장점입니다.