
Java 프로그래밍 언어로의 여정을 시작할 때, 특별히 주의가 필요한 주제 중 하나는 날짜와 시간을 다루는 것입니다. Java는 날짜와 시간을 조작할 수 있는 여러 클래스를 제공하며, 그중에서도 SimpleDateFormat, LocalDate, LocalDateTime, 그리고 ZonedDateTime이 가장 자주 사용됩니다. 이 가이드에서는 java.text 패키지의 일부인 SimpleDateFormat 클래스에 초점을 맞추어 설명하겠습니다. 이 클래스의 목적은 Java에서 날짜와 시간 정보를 형식화하고 분석하는 방법을 제공하는 것입니다.
SimpleDateFormat란 무엇인가?
Java의 SimpleDateFormat은 현지화된 방식으로 날짜를 형식화하고 분석하는 구체적인 클래스입니다. 이를 통해 형식화(즉, 날짜 -> 텍스트), 파싱(텍스트 -> 날짜), 그리고 정규화를 할 수 있습니다. 이 클래스를 이용하면 사용자 친화적인 형식으로 날짜를 형식화하거나, 사용자 입력을 실제 Date 객체로 파싱 할 수 있습니다.
SimpleDateFormat 사용하기: 기본사항
다음은 SimpleDateFormat를 사용하여 Date 객체를 String으로 형식화하는 간단한 예입니다.
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); // 특정 패턴("dd/MM/yyyy")으로 SimpleDateFormat 객체 생성
Date date = new Date(); // 현재 날짜와 시간을 가진 Date 객체 생성
System.out.println(formatter.format(date)); // 해당 패턴에 따라 Date 객체를 String으로 형식화하여 출력
}
}
SimpleDateFormat의 다양한 패턴
다음은 SimpleDateFormat에서 사용할 수 있는 다양한 패턴의 예입니다. SimpleDateFormat는 대소문자를 구분하므로, 다른 글자를 사용하면 다른 결과를 얻을 수 있습니다
1.초까지 표시되는 전체 날짜와 시간
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
여기서 "HH:mm:ss"는 시, 분, 초를 나타냅니다. "HH"는 24시간 형식을 사용합니다.
2. 요일과 월 이름의 축약형
SimpleDateFormat formatter = new SimpleDateFormat("EEE, MMM d, ''yy");
"EEE"는 요일의 축약형 (예: Mon), "MMM"은 월의 축약형 (예: Jan)을 제공하며, "''yy"는 두 자리 연도를 제공합니다.
3. 년 중의 일과 주
SimpleDateFormat formatter = new SimpleDateFormat("D 'day in year', w 'week in year'");
"D"는 년 중의 날 (1 - 365 또는 366)을, "w"는 년 중의 주를 나타냅니다.
4. 사용자 정의 패턴
SimpleDateFormat formatter = new SimpleDateFormat("'Date: ' dd/MM/yyyy 'Time: ' HH:mm:ss");
위와 같이 텍스트와 패턴을 결합할 수 있습니다. 이 경우 "Date: 21/06/2023 Time: 12:30:15"와 같이 출력됩니다.
텍스트를 날짜로 파싱 하기 날짜를 형식화하는 것 외에도, SimpleDateFormat는 텍스트를 Date 객체로 파싱 할 수 있습니다.
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
public class Main {
public static void main(String[] args) {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); // 특정 패턴("dd/MM/yyyy")으로 SimpleDateFormat 객체 생성
String dateInString = "22/06/2023"; // 문자열로 된 날짜
try {
Date date = formatter.parse(dateInString); // 문자열을 Date 객체로 파싱
System.out.println(date); // 파싱된 날짜 출력
} catch (ParseException e) {
e.printStackTrace(); // 예외 처리
}
}
}
이 예에서는 formatter.parse(dateInString)이 문자열을 Date 객체로 변환하는 데 사용됩니다.
댓글