프로그래밍 노트/JAVA

[Java] LocalDateTime, ZonedDateTime

깡냉쓰 2021. 7. 24. 18:21
728x90
반응형

LocalDateTime

시간대(Zone Offset, Zone Region)에 대한 정보가 없는 API이다. (Local 이 접두어로 붙어있다.)
즉, 한국에서 2021-01-01T08:00:00 시간이라면 다른 지역으로 넘어가도(미국) 같은 2021-01-01T08:00:00를 나타낸다.
LocalDateTime = LocalDate + LocalTime

LocalDateTime birthDateTime = LocalDateTime.of(1990, 10, 16, 08, 00, 00);

ZonedDateTime

LocalDateTime + Time Zone(시간대) 가 합쳐진 방식이다.
ZonedDateTime = LocalDate + LocalTime + ZoneOffset + ZoneRegion

ZonedDateTime now = ZonedDateTime.now(); // 2021-07-24T18:00:00
ZonedDateTime zdt = ZonedDateTime.of(LocalDateTime.of(2021, 07, 24, 18, 00, 00), ZoneId.of("Asia/Seoult"));

// LocalDateTime 에서 ZonedDateTime 구하기
// ZoneId를 지정하여 ZonedDateTime을 얻을 수 있음
LocalDateTime ldt = LocalDateTime.now();
ZoneId zi = ZoneId.of("Asia/Seoul");
ZoneId zi2 = ZoneId.of("UTC+9");
ZonedDateTime zdt = dt.atZone(zi);

ZoneOffset

UTC 기준으로 시간(Time Offset)을 나타낸 것
한국(KST, Korea Standard Time)기준으로 UTC보다 9시간이 빠르므로 UTC +09:00으로 표기
ZoneOffset은 ZoneId의 자식 클래스

ZoneOffset.of("+09:00");
728x90
반응형