ZoneId
시간대. java.time.ZoneId 클래스에 대해 알아보겠습니다.
지역 ID는 {지역}/{도시}로 구성됩니다.
다음 주소에서 각 정보들을 확인 가능합니다. (https://www.iana.or/time-zones)
ZoneDateTime
지정한 시간대에 상대적인 시점으로 LocalDateTime과 ZoneId가 합쳐진 개념이라고 보면 됩니다.
ZoneOffset
런던 그리니치 0도 자오선과 시간 값의 차이를 표현할 수 있는 기능들을 제공하는 클래스입니다.
예제를 통해서 사용 예시를 확인해보겠습니다.
import java.time.*;
import java.util.TimeZone;
public class Main {
public static void main(String[] args) {
ZoneId romeZone = ZoneId.of("Europe/Rome");
ZoneId seoulZone = ZoneId.of("Asia/Seoul");
ZoneId zoneId = TimeZone.getDefault().toZoneId();
ZonedDateTime zdt1 = date.atStartOfDay(seoulZone);
LocalDateTime dateTime = LocalDateTime.of(2022, Month.DECEMBER, 22, 23, 45);
ZonedDateTime zdt2 = dateTime.atZone(seoulZone);
Instant instant = Instant.now();
ZonedDateTime zdt3 = instant.atZone(seoulZone);
System.out.println(zdt1);
System.out.println(zdt2);
System.out.println(zdt3);
ZoneOffset newYork = ZoneOffset.of("-05:00");
OffsetDateTime daOffsetDateTime = OffsetDateTime.of(dateTime, newYork);
System.out.println(daOffsetDateTime);
}
}
출력 값
2022-10-22T00:00+09:00[Asia/Seoul]
2022-12-22T23:45+09:00[Asia/Seoul]
2022-11-28T20:54:25.808109400+09:00[Asia/Seoul]
2022-12-22T23:45-05:00
※ UTC = 협정 세계시, GMT(그리니치 표준시)
'Java > Time' 카테고리의 다른 글
TemporalAdjusters와 DateTimeFormatter (0) | 2022.11.28 |
---|---|
Instant, Duration, Period (0) | 2022.11.28 |
LocalDate, LocalTime, LocalDateTime (0) | 2022.11.28 |