ZonedDateTime — 시간대가 있는 날짜-시간
ZonedDateTime — 시간대가 있는 날짜-시간
ISO-8601 달력 체계에서 시간대가 있는 날짜-시간을 나타내는 클래스예요. 예: 2007-12-03T10:15:30+01:00 Europe/Paris.
본문
시그니처
public final class ZonedDateTime extends Object
implements Temporal, ChronoZonedDateTime<LocalDate>, Serializable
구현된 인터페이스: Serializable, Comparable<ChronoZonedDateTime<?>>, ChronoZonedDateTime<LocalDate>, Temporal, TemporalAccessor.
설명
ZonedDateTime은 시간대가 있는 날짜-시간의 불변 표현이에요. 이 클래스는 모든 날짜·시간 필드를 나노초 정밀도로 저장하고, 모호한 로컬 날짜-시간을 다루는 데 사용되는 존 오프셋을 가진 시간대를 저장해요. 예를 들어 "2007년 10월 2일 13:45.30.123456789 +02:00, Europe/Paris 시간대"라는 값을 ZonedDateTime에 저장할 수 있어요.
이 클래스는 LocalDateTime의 로컬 시간선에서 Instant의 instant 시간선으로의 변환을 처리해요. 두 시간선의 차이는 ZoneOffset로 표현되는 UTC/그리니치로부터의 오프셋이에요.
두 시간선 사이를 변환하는 것은 ZoneId에서 접근한 규칙을 사용해 오프셋을 계산하는 것을 포함해요. instant의 오프셋을 얻는 것은 각 instant에 정확히 하나의 유효 오프셋이 있으므로 단순해요. 반면 로컬 날짜-시간의 오프셋을 얻는 것은 세 가지 경우가 있어요:
- 일반(Normal) — 유효 오프셋 하나. 일 년의 대부분은 단일 유효 오프셋이 있는 일반 경우가 적용돼요.
- 갭(Gap) — 유효 오프셋이 0개. 보통 봄의 일광 절약 변경으로 시계가 앞으로 점프할 때 발생해요. 갭에는 유효 오프셋이 없는 로컬 날짜-시간 값이 있어요.
- 오버랩(Overlap) — 유효 오프셋이 두 개. 보통 가을의 일광 절약 변경으로 시계가 뒤로 설정될 때 발생해요.
주요 메서드
now()— 시스템 시계에서 현재 날짜-시간을 얻어요.of(LocalDate date, LocalTime time, ZoneId zone)— 날짜, 시간, 시간대에서ZonedDateTime인스턴스를 얻어요.parse(CharSequence text)— ISO-8601 텍스트에서ZonedDateTime인스턴스를 얻어요.withZoneSameInstant(ZoneId zone)— 같은 instant를 가진 다른 시간대의 복사본을 반환해요.withZoneSameLocal(ZoneId zone)— 같은 로컬 날짜-시간을 가진 다른 시간대의 복사본을 반환해요.toLocalDateTime()— 이 날짜-시간의LocalDateTime부분을 얻어요.getOffset()— 이 날짜-시간의 존 오프셋을 얻어요.toInstant()— 이 날짜-시간을Instant로 변환해요.plusDays(long days)— 일 수를 더한 이 날짜-시간의 복사본을 반환해요.