Temporal — temporal 객체 읽기/쓰기 접근 인터페이스

Temporal — temporal 객체 읽기/쓰기 접근 인터페이스

날짜, 시간, 오프셋 또는 이들의 조합 같은 temporal 객체에 대한 읽기-쓰기 접근을 정의하는 프레임워크 수준 인터페이스예요.

출처: Java API Reference

본문

시그니처

public interface Temporal extends TemporalAccessor

모든 슈퍼인터페이스: TemporalAccessor.

설명

이것은 plus와 minus로 조작하기에 충분히 완전한 날짜, 시간, 오프셋 객체의 기본 인터페이스 유형이에요. 필드나 쿼리로 정보를 제공·조작할 수 있는 클래스들이 구현해요. 이 인터페이스의 읽기 전용 버전은 TemporalAccessor를 참고하세요.

대부분의 날짜·시간 정보는 숫자로 표현할 수 있어요. 이들은 큰 값을 다루기 위해 long으로 숫자를 보관하는 TemporalField로 모델링돼요. 연, 월, 일은 필드의 단순한 예시이며, instant와 offset도 포함돼요. 표준 필드 집합은 ChronoField를 참고하세요.

숫자로 표현할 수 없는 두 가지 날짜·시간 정보는 크로놀로지(chronology)와 시간대(time-zone)예요. 이들은 TemporalQuery에 정의된 정적 메서드를 사용한 쿼리를 통해 접근할 수 있어요.

이 인터페이스는 애플리케이션 코드에서 널리 사용하면 안 되는 프레임워크 수준 인터페이스예요. 대신 애플리케이션은 LocalDate 같은 구체적인 타입의 인스턴스를 만들고 전달해야 해요. 그 이유 중 하나는 이 인터페이스의 구현이 ISO가 아닌 달력 체계에 있을 수 있기 때문이에요.

언제 구현할까

클래스가 세 가지 기준을 충족하면 이 인터페이스를 구현해야 해요:

  • TemporalAccessor에 따라 날짜/시간/오프셋 정보 접근을 제공한다
  • 필드 집합이 가장 큰 것부터 가장 작은 것까지 연속적이다
  • 필드 집합이 완전해서, 표현되는 필드의 유효 값 범위를 정의하는 데 다른 필드가 필요 없다

예를 들어 LocalDate는 일부터 무한까지 연속된 필드 집합을 나타내고 각 날짜의 유효성을 결정하는 데 외부 정보가 필요 없으므로 이 인터페이스를 구현해요. LocalTime도 이와 유사해요.

주요 메서드

  • plus(TemporalAmount amount) / minus(TemporalAmount amount) — 시간 양을 더하거나 뺀 이 객체의 복사본을 반환해요.
  • with(TemporalField field, long newValue) — 지정한 필드의 새 값을 가진 이 객체의 복사본을 반환해요.
  • with(TemporalAdjuster adjuster) — 조정기(adjuster)로 조정된 이 객체의 복사본을 반환해요.
  • until(Temporal endExclusive, TemporalUnit unit) — 지정한 단위로 이 객체에서 다른 temporal까지의 시간 양을 계산해요.

더 알아보기 (Learn more)