반응형
DateTimeFormatter 이란
DateTimeFormatter는 Java 8 이상에서 날짜 및 시간 형식을 지정하고 파싱하는 데 사용되는 클래스입니다. 이 클래스는 java.time.format 패키지에 포함되어 있습니다. DateTimeFormatter는 패턴을 사용하여 날짜와 시간을 형식화하거나 파싱할 수 있습니다.
다음은 몇 가지 주요 패턴 문자열과 해당 설명입니다:
- 년 (Year):
- y: 연도를 나타냅니다.
- yyyy: 4자리 연도를 나타냅니다.
- 월 (Month):
- M: 1 또는 2 자리의 월을 나타냅니다.
- MM: 2자리 월을 나타냅니다.
- MMM: 월의 축약된 이름을 나타냅니다 (예: Jan, Feb).
- MMMM: 월의 전체 이름을 나타냅니다 (예: January, February).
- 일 (Day):
- d: 1 또는 2 자리의 일을 나타냅니다.
- dd: 2자리 일을 나타냅니다.
- 시간 (Hour):
- H: 0부터 23까지의 시간을 나타냅니다.
- HH: 00부터 23까지의 2자리 시간을 나타냅니다.
- h: 1부터 12까지의 시간을 나타냅니다.
- hh: 01부터 12까지의 2자리 시간을 나타냅니다.
- 분 (Minute):
- m: 분을 나타냅니다.
- mm: 2자리 분을 나타냅니다.
- 초 (Second):
- s: 초를 나타냅니다.
- ss: 2자리 초를 나타냅니다.
- 날짜 및 시간 구분 기호:
- /, -, . 등: 날짜 요소를 구분하는 데 사용됩니다.
- 패턴의 따옴표:
- '' 또는 ""으로 감싸면 그 안의 문자열은 리터럴로 취급됩니다.
다음은 간단한 예제입니다:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
// 포맷: yyyy-MM-dd HH:mm:ss
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = now.format(formatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
// 파싱: yyyy/MM/dd
String dateString = "2022/01/29";
LocalDate parsedDate = LocalDate.parse(dateString, DateTimeFormatter.ofPattern("yyyy/MM/dd"));
System.out.println("Parsed Date: " + parsedDate);
}
}
꼭 알아야 하는 DateTimeFormatter 상수
DateTimeFormatter 에는 자주 사용되는 형식을 상수로 정의하여 상수로 포함하고 있습니다. 이러한 상수를 사용하면 날짜와 시간 형식을 간편하게 지정할 수 있습니다. 몇 가지 주요 상수에 대한 설명은 다음과 같습니다:
- ISO 형식:
- DateTimeFormatter.ISO_LOCAL_DATE: yyyy-MM-dd 형식의 날짜.
- DateTimeFormatter.ISO_LOCAL_TIME: HH:mm:ss 형식의 시간.
- DateTimeFormatter.ISO_LOCAL_DATE_TIME: yyyy-MM-ddTHH:mm:ss 형식의 날짜와 시간.
- ISO Offset 형식:
- DateTimeFormatter.ISO_OFFSET_DATE: yyyy-MM-ddZZ 형식의 날짜와 오프셋.
- DateTimeFormatter.ISO_OFFSET_TIME: HH:mm:ssZZ 형식의 시간과 오프셋.
- DateTimeFormatter.ISO_OFFSET_DATE_TIME: yyyy-MM-ddTHH:mm:ssZZ 형식의 날짜, 시간, 그리고 오프셋.
- ISO Zoned 형식:
- DateTimeFormatter.ISO_ZONED_DATE_TIME: yyyy-MM-ddTHH:mm:ss[.SSS]XXXXX 형식의 날짜, 시간, 그리고 시간대.
- RFC 1123 형식:
- DateTimeFormatter.RFC_1123_DATE_TIME: RFC 1123 형식 (e.g., Tue, 3 Jun 2008 11:05:30 GMT)의 날짜와 시간.
이러한 상수를 사용하면 특정한 형식을 쉽게 설정할 수 있습니다.
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterConstantsExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
// ISO_LOCAL_DATE 형식으로 포맷
String isoDate = now.format(DateTimeFormatter.ISO_LOCAL_DATE);
System.out.println("ISO Date: " + isoDate);
// RFC_1123_DATE_TIME 형식으로 포맷
String rfcDate = now.format(DateTimeFormatter.RFC_1123_DATE_TIME);
System.out.println("RFC Date: " + rfcDate);
}
}
이 예제에서는 DateTimeFormatter.ISO_LOCAL_DATE와 DateTimeFormatter.RFC_1123_DATE_TIME 상수를 사용하여 현재 날짜와 시간을 해당 형식으로 출력하였습니다. ^^
도움이 되었으면 합니다. 감사합니다.
반응형