ZonedDateTime — 시간대가 있는 날짜-시간

ZonedDateTime — 시간대가 있는 날짜-시간

ISO-8601 달력 체계에서 시간대가 있는 날짜-시간을 나타내는 클래스예요. 예: 2007-12-03T10:15:30+01:00 Europe/Paris.

출처: Java API Reference

본문

시그니처

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) — 일 수를 더한 이 날짜-시간의 복사본을 반환해요.

더 알아보기 (Learn more)