ZoneOffset — 그리니치/UTC 시간대 오프셋
ZoneOffset — 그리니치/UTC 시간대 오프셋
'+02:00' 같은 그리니치/UTC로부터의 시간대 오프셋을 나타내는 클래스예요.
본문
시그니처
public final class ZoneOffset extends ZoneId
implements TemporalAccessor, TemporalAdjuster, Comparable<ZoneOffset>, Serializable
구현된 인터페이스: Serializable, Comparable<ZoneOffset>, TemporalAccessor, TemporalAdjuster.
설명
시간대 오프셋은 시간대가 그리니치/UTC와 얼마나 다른지를 나타내는 시간 양이에요. 보통 고정된 시간·분 수예요.
세계의 다른 지역은 서로 다른 시간대 오프셋을 가져요. 오프셋이 장소와 연중 시기에 따라 어떻게 변하는지에 대한 규칙은 ZoneId 클래스에 담겨 있어요.
예를 들어 파리는 겨울에 그리니치/UTC보다 한 시간 빠르고 여름에는 두 시간 빠르지요. 파리의 ZoneId 인스턴스는 두 개의 ZoneOffset 인스턴스 — 겨울용 +01:00, 여름용 +02:00 — 를 참조할 거예요.
2008년에 전 세계 시간대 오프셋은 -12:00에서 +14:00까지 확장됐어요. 이 범위가 확장되는 문제를 방지하면서도 검증을 제공하기 위해, 오프셋 범위는 -18:00에서 18:00(포함)으로 제한돼요.
이 클래스는 ISO 달력 체계와 함께 사용하도록 설계되었어요. ZoneOffset의 인스턴스는 equals(java.lang.Object)를 사용해 비교해야 해요. 구현이 특정 공통 오프셋을 캐시할 수도 있지만, 애플리케이션은 그런 캐싱에 의존하면 안 돼요.
이 클래스는 값 기반(value-based) 클래스예요. 프로그래머는 서로 같은 인스턴스를 교환 가능하게 취급해야 하며, 동기화에 인스턴스를 사용하면 안 돼요. 비교에는 equals 메서드를 사용해야 해요.
주요 메서드
of(String offsetId)— 지정한 id에서 오프셋을 얻어요. 예: "+02:00", "Z".ofHours(int hours)— 지정한 시 수에서 오프셋을 얻어요.ofHoursMinutes(int hours, int minutes)— 지정한 시·분에서 오프셋을 얻어요.ofTotalSeconds(int totalSeconds)— 지정한 총 초 수에서 오프셋을 얻어요.UTC— UTC 오프셋을 나타내는 상수 필드예요.getTotalSeconds()— 이 오프셋의 총 초 수를 얻어요.getId()— 정규화된 오프셋 id를 얻어요.getRules()— 이 오프셋에 대한 규칙을 얻어요.