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

+ Recent posts