Java

OffsetDateTime

Wanderer Kim 2025. 5. 23. 17:49
반응형

java에서 시간을 다루는 클래스들 중 offset 정보를 가지고 있는 OffsetDateTime에 대해서 알아보자

OffsetDateTime란?

OffsetDateTime 클래스는 LocalDateTime 정보와 UTC offset 정보인 ZonedOffset이 합쳐진 것이다.

public class OffsetDateTime {
	private final LocalDateTime dateTime;
	private final ZoneOffset offset;
}

OffsetDateTime은 시간대를 고려한 날짜와 시간을 표현할 때 사용한다. 해당 클래스에는 TimeZone은 없고 Offset정보만 표시된다. 

  • 표시 예시: 2013-11-21T08:20:30.213+9:00

사용 예제 코드

package time;

import java.time.*;

public class OffsetDateTimeMain {
	public static void main(String[] args) {
		OffsetDateTime nowOdt = OffsetDateTime.now();
		System.out.println("nowOdt = " + nowOdt);
		LocalDateTime ldt = LocalDateTime.of(2030, 1, 1, 13, 30, 50);
		System.out.println("ldt = " + ldt);
		OffsetDateTime odt = OffsetDateTime.of(ldt, ZoneOffset.of("+01:00"));
		System.out.println("odt = " + odt);
	}
}
nowOdt = 2024-02-13T15:03:36.422230+09:00
ldt = 2030-01-01T13:30:50
odt = 2030-01-01T13:30:50+01:00
  • now(): 시스템 타임을 기준으로 현재 날짜, 시간 및 오프셋 정보를 얻는다.
  • of(): 특정 년,월,일 시간 및 오프셋 정보를 기준으로 OffsetDateTime을 얻는다.
728x90