ZoneId — 시간대 ID

ZoneId — 시간대 ID

'Europe/Paris' 같은 시간대 ID를 나타내는 추상 클래스예요.

출처: Java API Reference

본문

시그니처

public abstract sealed class ZoneId extends Object
    implements Serializable
permits ZoneOffset (not exhaustive)

구현된 인터페이스: Serializable. sealed 클래스로, ZoneOffset 등이 허용된 하위 클래스예요.

설명

ZoneIdInstantLocalDateTime 사이를 변환하는 데 사용되는 규칙을 식별하는 데 쓰여요. 두 가지 뚜렷한 ID 유형이 있어요:

  • 고정 오프셋(Fixed offsets) — UTC/그리니치로부터 완전히 해석된 오프셋으로, 모든 로컬 날짜-시간에 같은 오프셋을 사용해요.
  • 지리적 지역(Geographical regions) — UTC/그리니치로부터의 오프셋을 찾는 특정 규칙 집합이 적용되는 지역이에요.

대부분의 고정 오프셋은 ZoneOffset로 표현돼요. 어떤 ZoneIdnormalized()를 호출하면 고정 오프셋 ID가 ZoneOffset으로 표현되도록 보장해요.

오프셋이 언제 어떻게 변하는지 설명하는 실제 규칙은 ZoneRules로 정의돼요. 이 클래스는 단순히 기본 규칙을 얻는 데 사용되는 ID예요. 규칙은 정부가 정의하고 자주 바뀌는 반면 ID는 안정적이기 때문에 이런 방식을 취해요.

시간대 ID (Time-zone IDs)

ID는 시스템 내에서 고유해요. 세 가지 유형이 있어요. 가장 단순한 유형은 ZoneOffset의 것으로 'Z'와 '+' 또는 '-'로 시작하는 ID로 구성돼요. 다음 유형은 'GMT+2'나 'UTC+01:00' 같은 어떤 형태의 접두사를 가진 오프셋 스타일 ID예요. 인식되는 접두사는 'UTC', 'GMT', 'UT'예요.

세 번째 유형은 지역 기반 ID로, {area}/{city} 형식을 사용해요. 예를 들어 Europe/Paris처럼요. 지역 기반 ID는 두 부분으로 구성돼요. 이 ID들은 ZoneRulesProvider를 통해 시간대 규칙 집합을 얻기 위한 정의와도 관련돼요.

주요 메서드

  • of(String zoneId) — 시간대 ID에서 ZoneId 인스턴스를 얻어요.
  • systemDefault() — 시스템 기본 시간대 ID를 얻어요.
  • getAvailableZoneIds() — 사용 가능한 zone ID 집합을 얻어요.
  • getId() — 고유한 시간대 ID를 얻어요.
  • getRules() — 이 ID에 대한 시간대 규칙을 얻어요.
  • normalized() — 고정 오프셋인 경우 ZoneOffset로 정규화된 이 ID의 복사본을 반환해요.

더 알아보기 (Learn more)