[Java] ZonedDateTime 파서(parse), DateTimeFormatter 사용법

반응형

 ZonedDateTime 

 

LocalDateTIme, ZonedDateTime은 java.time 패키지의 API로 자바 8 부터 추가되어 날짜 및 시간을 간단히 처리할 수 있습니다. 그중에 ZonedDateTime은 시간대를 정보를 포함하는 객체로 LocalDateTime 보다 다국어 처리에 용의합니다.

ZonedDateTime


 

 

전체 ZoneId 목록을 가져옵니다. ZoneDateTime을 만들기 위해서는 ZoneId 가 필요합니다. 예를 들어 서울의 경우 Asia/Seoul 이 ZoneId가 됩니다.

Asia/Aden : 2022-09-29T14:20:41.657715+03:00[Asia/Aden]
America/Cuiaba : 2022-09-29T07:20:41.658806-04:00[America/Cuiaba]
Etc/GMT+9 : 2022-09-29T02:20:41.658854-09:00[Etc/GMT+9]
Etc/GMT+8 : 2022-09-29T03:20:41.658888-08:00[Etc/GMT+8]
...

 

 

 

 다음은 예제는 ZoneDateTime을 객체를 만들어 출력합니다. 단순히 UTC, Asia/Seoul 의 ZoneDateTime 객체를 만들고 출력합니다.

2022-09-29T21:53:25.456288+09:00[Asia/Seoul]
2022-09-29T12:53:25.456415Z[UTC]

 

 

 

 이번에는 ZonedDateTime을 LocalDateTime으로 변환하고 다시 LocalDateTime을 ZoneDateTime으로 변환합니다. ZoneId 만 알고 있다면 LocalDateTime을 손쉽게 ZonedDateTime으로 바꿀 수 있습니다.

2022-09-29T21:53:47.172494
2022-09-29T21:53:47.172494+09:00[Asia/Seoul]

 

 

 

 다음 예제는 DateTimeFormatter를 사용해서 ZonedDateTime 객체를 문자열로 변환합니다. 포매터의 형태에 따라 다양한 방식으로 변환이 가능합니다.

2022-09-29T21:54:35.242084+09:00[Asia/Seoul]
2022/09/29 21:54:35 KST
2022년 9월 29일 목요일 오후 9시 54분 35초 대한민국 표준시
Thursday, September 29, 2022 at 9:54:35 PM Korean Standard Time

 

 

 

 다음 예제는 문자열을 다시 ZoneDateTime 객체로 변환하는 방법입니다. 이 역시 문자열에 맞는 포매터를 생성해서 parse를 통해 역순으로 변환합니다.

2022-09-29T21:54:35.242084+09:00[Asia/Seoul]
2022-09-29T21:54:35+09:00[Asia/Seoul]
2022-09-29T21:54:35+09:00[Asia/Seoul]
2022-09-29T21:54:35+09:00[Asia/Seoul]

반응형

댓글

Designed by JB FACTORY