상세 컨텐츠

본문 제목

날짜 파싱 메서드 (Formatting)

기록 - 프로그래밍/Java

by wjjun 2024. 1. 28. 00:34

본문

 

 

파싱 메서드

날짜와 시간 정보가 포함된 문자열을 파싱해서 날짜와 시간을 생성하는 두 개의 parse() 정적 메서드

클래스 리턴 타입 메섣,
LocalDate
LocalTime
LocalDateTime
ZonedDateTime
LocalDate
LocalTime
LocalDateTime
ZonedDateTime
parse(CharSequence)
parse(CharSequence, DateTimeFormatter)

 

LocalDate의 parse(CharSequence) 메서드는 기본적으로 ISO_LOCAL_DATE 포맷터를 사용해서 문자열 파싱합니다. ISO_LOCAL_DATE는 DateTimeFormatter 상수로 정의되어 있는데 "2023-11-11" 형식의 포맷터입니다.

LocalDate localDate = LocalDate.parse("2024-11-11");

 

 

다른 포맷터를 이용해서 문자열을 파싱하고 싶다면 parse(CharSequence, DateTimeFormatter) 메서드를 사용할 수 있습니다. DateTimeFormatter는 ofPattern() 메서드로 정의할 수도 있는데 다음의 코드는 "2024.05.21 형식의 DateTimeFormatter를 정의하고 문자열을 파싱했습니다.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
LocalDate localDate = LocalDate.parse("2024.11.11", formatter);

 

DateTimeFormatter에는 표준화된 포맷터들이 다음과 같이 상수로 미리 정의되어 있습니다.

ofPattern() 메서드를 사용하지 않고도 바로 이용할 수 있습니다.

상수 설명
BASIC_ISO_DATE Basic ISO date "20231111"
ISO_LOCAL_DATE ISO Local Date "2023-11-11"
ISO_OFFSET_DATE ISO Date with offset "2023-11-11+01:00"
ISO_DATE ISO Date with or without offset "2023-11-11+01:00";"2023-11-11"
ISO_LOCAL_TIME Time without offset "10:11:30"
ISO_OFFSET_TIME Time with offset "10:15:30+01:00"
ISO_TIME Time with or without offset "10:15:30+01:00"; "10:15:30"

 

위 표 외에도 포맷 상수에 따른 방식이 다양하게 있습니다.

 

 

포맷팅(Formatting) 메서드

날짜와 시간을 포맷팅된 문자열로 변환시키는 format() 메서드입니다.

클래스 리턴타입 메서드
LocalDate
LocalTime
LocalDateTime
ZonedDateTime
String format(DateTimeFormatter formatter)

 

format()의 매개값은 DateTimeFormatter 인데 해당 형식대로 문자열을 리턴합니다.

LocalDateTime now = LocalDateTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy년 M월 d일 a h시 m분");
String nowString = now.format(dateTimeFormatter);

 

 

 

관련글 더보기

댓글 영역