AbstractChronology

AbstractChronology (달력 시스템을 위한 추상 구현)

특정 달력 시스템(calendar system)에서 날짜를 구성하고 식별하는 데 쓰는 추상 구현 클래스예요. Java의 주요 날짜·시간 API는 ISO 달력 시스템을 기반으로 설계되어 있는데, 이 클래스는 그 뒤에서 '달력 시스템'이라는 일반적인 개념을 표현해요. 기본 개념은 Chronology 인터페이스에서 정의하므로, 상세한 내용은 거기서 다뤄요.

출처: Java API Reference

본문

AbstractChronologyChronology 인터페이스에 선언된 연산 중 상당 부분을 미리 구현해 두어, 새 달력 시스템을 직접 만들 때 필요한 반복 작업을 줄여줘요. 예를 들어 연도, 월, 일로 날짜를 만들거나 특정 필드의 값을 조회하는 로직을 공통으로 처리해 주죠.

클래스 시그니처는 다음과 같아요.

public abstract class AbstractChronology
    implements Chronology, Serializable

이 클래스는 추상 클래스이므로 직접 인스턴스화하지는 못해요. 대신 표준 달력 시스템을 쓸 때는 IsoChronology.INSTANCE 같은 이미 준비된 인스턴스를 쓰고, 자체 달력 시스템을 만들 때는 이 클래스를 상속받아 필요한 부분만 구현해요.

ChronologyresolveDate(), date() 같은 팩토리성 메서드가 여기서 구체적으로 정의되는 만큼, 구현하는 쪽은 ChronoLocalDate 클래스에 집중할 수 있어요. 대부분의 달력 특유 로직은 날짜 클래스에 들어가거든요.

더 알아보기 (Learn more)

Java 공식 API