IsoChronology
IsoChronology (ISO 달력 시스템)
ISO 달력 시스템을 나타내는 클래스예요. 이 chronology는 ISO 달력 시스템의 규칙을 정의하며, 이 달력은 사실상 세계 달력(de facto world calendar)인 ISO-8601 표준에 기반해요.
본문
필드는 다음과 같이 정의돼요.
- era — 두 연호가 있어요: 'Current Era'(CE)와 'Before Current Era'(BCE).
- year-of-era — 현재 CE 연호에서는 proleptic-year와 같아요. BCE 연호(ISO epoch 이전)에서는 시간이 거슬러 갈수록 1부터 증가해요.
- proleptic-year — 현재 연호에서는 year-of-era와 같아요. 이전 연호에서는 연도가 0, 그다음 음수 값을 가져요.
- month-of-year — ISO 연도에는 1부터 12까지 번호가 매겨진 12개월이 있어요.
- day-of-month — 각 ISO 달에는 28~31일이 있고 1부터 31까지 번호가 매겨져요. 4·6·9·11월은 30일, 1·3·5·7·8·10·12월은 31일, 2월은 28일(윤년엔 29일)이에요.
- day-of-year — 표준 ISO 연도는 365일, 윤년은 366일이에요. 날짜는 1
365 또는 1366으로 번호가 매겨져요. - leap-year — 100으로 나누어떨어지고 400으로 나누어떨어지지 않는 해를 제외하고 윤년은 4년마다 발생해요. 즉 400년 주기로 97개 윤년이 있어요.
public final class IsoChronology
extends AbstractChronology
implements Serializable
IsoChronology의 일반 인스턴스는 IsoChronology.INSTANCE 상수로 접근할 수 있어요. 이 chrononology는 Chronology.of(String) 등으로 얻는 기본/ISO 달력 시스템이에요. 날짜를 만들려면 IsoChronology.INSTANCE.date(...)를 쓰거나, 대부분은 LocalDate.of(...) 같은 더 간단한 팩토리를 쓰는 것이 편해요.