OffsetDateTime — 오프셋이 있는 날짜-시간
OffsetDateTime — 오프셋이 있는 날짜-시간
ISO-8601 달력 체계에서 UTC/그리니치로부터의 오프셋이 있는 날짜-시간을 나타내는 클래스예요. 예: 2007-12-03T10:15:30+01:00.
본문
시그니처
public final class OffsetDateTime extends Object
implements Temporal, TemporalAdjuster, Comparable<OffsetDateTime>, Serializable
구현된 인터페이스: Serializable, Comparable<OffsetDateTime>, Temporal, TemporalAccessor, TemporalAdjuster.
설명
OffsetDateTime은 오프셋이 있는 날짜-시간의 불변 표현이에요. 이 클래스는 모든 날짜·시간 필드를 나노초 정밀도로 저장하고, UTC/그리니치로부터의 오프셋도 저장해요. 예를 들어 "2007년 10월 2일 13:45:30.123456789 +02:00"이라는 값을 OffsetDateTime에 저장할 수 있어요.
OffsetDateTime, ZonedDateTime, Instant는 모두 시간선 위의 순간을 나노초 정밀도로 저장해요. Instant는 가장 단순해서 순간만 나타내요. OffsetDateTime은 순간에 UTC/그리니치로부터의 오프셋을 추가해 로컬 날짜-시간을 얻을 수 있게 해 줘요. ZonedDateTime은 완전한 시간대 규칙을 추가해요.
더 단순한 애플리케이션에서는 ZonedDateTime이나 Instant로 데이터를 모델링하는 것이 의도돼요. 이 클래스는 날짜-시간 개념을 더 자세히 모델링하거나, 데이터베이스나 네트워크 프로토콜과 통신할 때 사용할 수 있어요.
이 클래스는 값 기반(value-based) 클래스예요. 프로그래머는 서로 같은 인스턴스를 교환 가능하게 취급해야 하며, 동기화에 인스턴스를 사용하면 안 돼요. 비교에는 equals 메서드를 사용해야 해요.
주요 메서드
now()— 시스템 시계에서 현재 날짜-시간을 얻어요.of(LocalDateTime dateTime, ZoneOffset offset)— 날짜-시간과 오프셋에서OffsetDateTime인스턴스를 얻어요.parse(CharSequence text)— ISO-8601 텍스트에서OffsetDateTime인스턴스를 얻어요.atZoneSameInstant(ZoneId zone)— 이 날짜-시간을 시간대와 결합해 같은 순간을 보장하는ZonedDateTime을 만들어요.atZoneSimilarLocal(ZoneId zone)— 이 날짜-시간을 시간대와 결합해 로컬 날짜·시간을 유지하려는ZonedDateTime을 만들어요.toLocalDateTime()— 이 날짜-시간의LocalDateTime부분을 얻어요.getOffset()— '+01:00' 같은 존 오프셋을 얻어요.withOffsetSameInstant(ZoneOffset offset)— 같은 순간을 가진 다른 오프셋의 복사본을 반환해요.toInstant()— 이 날짜-시간을Instant로 변환해요.