Spec-Zone.ru › OpenJDK 25

Класс IsoChronology

java.lang.Object
java.time.chrono.AbstractChronology
java.time.chrono.IsoChronology
Все реализуемые интерфейсы:
Serializable, Comparable<Chronology>, Chronology
public final class IsoChronology extends AbstractChronology implements Serializable
Календарная система ISO.

Эта хронология определяет правила календарной системы ISO. Эта календарная система основана на стандарте ISO-8601, который является фактическим мировым календарём.

Поля определены следующим образом:

  • эра — существует две эры: «Наша эра» (CE) и «До нашей эры» (BCE).
  • год эры — для текущей эры CE год эры совпадает с пролептическим годом. Для эры BCE до эпохи ISO год увеличивается от 1 по мере движения времени назад.
  • пролептический год — для текущей эры пролептический год совпадает с годом эры. Для предыдущей эры годы включают ноль и отрицательные значения.
  • месяц года — в году ISO 12 месяцев, пронумерованных от 1 до 12.
  • день месяца — в каждом месяце ISO от 28 до 31 дня, пронумерованных от 1 до 31. В месяцах 4, 6, 9 и 11 — 30 дней, в месяцах 1, 3, 5, 7, 8, 10 и 12 — 31 день. Во втором месяце 28 дней или 29 в високосном году.
  • день года — в обычном году ISO 365 дней, а в високосном — 366. Дни нумеруются от 1 до 365 или от 1 до 366.
  • високосный год — високосные годы наступают каждые 4 года, за исключением случаев, когда год делится на 100, но не делится на 400.
Требования к реализации:
Этот класс неизменяемый и потокобезопасный.
Появился в версии:
1.8
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final IsoChronology INSTANCE
Экземпляр-одиночка хронологии ISO.

Краткое описание методов

Модификатор и тип Метод Описание
LocalDate date(int prolepticYear, int month, int dayOfMonth)
Получает локальную дату ISO из полей пролептического года, месяца года и дня месяца.
LocalDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Получает локальную дату ISO из полей эры, года эры, месяца года и дня месяца.
LocalDate date(TemporalAccessor temporal)
Получает локальную дату ISO из другого объекта даты и времени.
LocalDate dateEpochDay(long epochDay)
Получает локальную дату ISO из дня эпохи.
LocalDate dateNow()
Получает текущую локальную дату ISO по системным часам в часовом поясе по умолчанию.
LocalDate dateNow(Clock clock)
Получает текущую локальную дату ISO по указанным часам.
LocalDate dateNow(ZoneId zone)
Получает текущую локальную дату ISO по системным часам в указанном часовом поясе.
LocalDate dateYearDay(int prolepticYear, int dayOfYear)
Получает локальную дату ISO из полей пролептического года и дня года.
LocalDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
Получает локальную дату ISO из полей эры, года эры и дня года.
long epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд от эпохи 1970-01-01T00:00:00Z.
IsoEra eraOf(int eraValue)
Создаёт объект эры хронологии из числового значения.
List<Era> eras()
Получает список эр хронологии.
String getCalendarType()
Получает тип календаря базовой календарной системы — 'iso8601'.
String getId()
Получает идентификатор хронологии — 'ISO'.
boolean isIsoBased()
IsoChronology — хронология на основе ISO, поддерживающая поля из IsoFields, например DAY_OF_QUARTER и QUARTER_OF_YEAR.
boolean isLeapYear(long prolepticYear)
Проверяет, является ли год високосным согласно правилам пролептической календарной системы ISO.
LocalDateTime localDateTime(TemporalAccessor temporal)
Получает локальную дату и время ISO из другого объекта даты и времени.
Period period(int years, int months, int days)
Получает период для этой хронологии, заданный в годах, месяцах и днях.
int prolepticYear(Era era, int yearOfEra)
Вычисляет пролептический год по эре и году эры.
ValueRange range(ChronoField field)
Получает диапазон допустимых значений для указанного поля.
LocalDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
Преобразует разобранные значения ChronoField в дату в ходе разбора.
ZonedDateTime zonedDateTime(Instant instant, ZoneId zone)
Получает дату и время ISO с часовым поясом в этой хронологии из Instant.
ZonedDateTime zonedDateTime(TemporalAccessor temporal)
Получает дату и время ISO с часовым поясом из другого объекта даты и времени.

Методы, объявленные в классе AbstractChronology

compareTo, equals, hashCode, toString

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе Chronology

epochSecond, getDisplayName

Подробное описание полей

INSTANCE

public static final IsoChronology INSTANCE
Единственный экземпляр хроники ISO.

Подробное описание методов

getId

public String getId()
Возвращает идентификатор хроники — 'ISO'.

Идентификатор однозначно определяет Chronology. Его можно использовать для поиска Chronology с помощью Chronology.of(String).

Определено в:
getId в интерфейсе Chronology
Возвращает:
идентификатор хроники — 'ISO'
См. также:
  • getCalendarType()

getCalendarType

public String getCalendarType()
Возвращает тип календаря базовой календарной системы — 'iso8601'.

Тип календаря — это идентификатор, определенный спецификацией Unicode Locale Data Markup Language (LDML). Его можно использовать для поиска Chronology с помощью Chronology.of(String). Его также можно использовать как часть локали; он доступен через Locale.getUnicodeLocaleType(String) с ключом 'ca'.

Определено в:
getCalendarType в интерфейсе Chronology
Возвращает:
тип календарной системы — 'iso8601'
См. также:
  • getId()

date

public LocalDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Создает локальную дату ISO на основе полей эры, года в эре, месяца и дня месяца.
Определено в:
date в интерфейсе Chronology
Параметры:
era — эра ISO, не null
yearOfEra — год ISO в эре
month — месяц ISO
dayOfMonth — день месяца ISO
Возвращает:
локальную дату ISO, не null
Вызывает исключение:
DateTimeException — если не удается создать дату
ClassCastException — если тип era не является IsoEra

date

public LocalDate date(int prolepticYear, int month, int dayOfMonth)
Создает локальную дату ISO на основе полей пролептического года, месяца и дня месяца.

Эквивалентно вызову LocalDate.of(int, int, int).

Определено в:
date в интерфейсе Chronology
Параметры:
prolepticYear — пролептический год ISO
month — месяц ISO
dayOfMonth — день месяца ISO
Возвращает:
локальную дату ISO, не null
Вызывает исключение:
DateTimeException — если не удается создать дату

dateYearDay

public LocalDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
Создает локальную дату ISO на основе полей эры, года в эре и дня года.
Определено в:
dateYearDay в интерфейсе Chronology
Параметры:
era — эра ISO, не null
yearOfEra — год ISO в эре
dayOfYear — день года ISO
Возвращает:
локальную дату ISO, не null
Вызывает исключение:
DateTimeException — если не удается создать дату

dateYearDay

public LocalDate dateYearDay(int prolepticYear, int dayOfYear)
Создает локальную дату ISO на основе полей пролептического года и дня года.

Эквивалентно вызову LocalDate.ofYearDay(int, int).

Определено в:
dateYearDay в интерфейсе Chronology
Параметры:
prolepticYear — пролептический год ISO
dayOfYear — день года ISO
Возвращает:
локальную дату ISO, не null
Вызывает исключение:
DateTimeException — если не удается создать дату

dateEpochDay

public LocalDate dateEpochDay(long epochDay)
Создает локальную дату ISO на основе дня от начала эпохи.

Эквивалентно вызову LocalDate.ofEpochDay(long).

Определено в:
dateEpochDay в интерфейсе Chronology
Параметры:
epochDay — день от начала эпохи
Возвращает:
локальную дату ISO, не null
Вызывает исключение:
DateTimeException — если не удается создать дату

date

public LocalDate date(TemporalAccessor temporal)
Создает локальную дату ISO на основе другого объекта даты и времени.

Эквивалентно вызову LocalDate.from(TemporalAccessor).

Определено в:
date в интерфейсе Chronology
Параметры:
temporal — объект даты и времени для преобразования, не null
Возвращает:
локальную дату ISO, не null
Вызывает исключение:
DateTimeException — если не удается создать дату
См. также:
  • ChronoLocalDate.from(TemporalAccessor)

epochSecond

public long epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Возвращает количество секунд, прошедших с эпохи 1970-01-01T00:00:00Z.

Количество секунд вычисляется с использованием года, месяца, дня месяца, часа, минуты, секунды и смещения часового пояса.

Определено в:
epochSecond в интерфейсе Chronology
Параметры:
prolepticYear — год, от MIN_YEAR до MAX_YEAR
month — месяц года, от 1 до 12
dayOfMonth — день месяца, от 1 до 31
hour — час суток, от 0 до 23
minute — минута часа, от 0 до 59
second — секунда минуты, от 0 до 59
zoneOffset — смещение часового пояса, не null
Возвращает:
количество секунд относительно 1970-01-01T00:00:00Z; может быть отрицательным
Вызывает исключение:
DateTimeException — если значение любого аргумента выходит за допустимый диапазон или день месяца недопустим для данного месяца
Начиная с версии:
9

localDateTime

public LocalDateTime localDateTime(TemporalAccessor temporal)
Создает локальные дату и время ISO на основе другого объекта даты и времени.

Эквивалентно вызову LocalDateTime.from(TemporalAccessor).

Определено в:
localDateTime в интерфейсе Chronology
Параметры:
temporal — объект даты и времени для преобразования, не null
Возвращает:
локальные дату и время ISO, не null
Вызывает исключение:
DateTimeException — если не удается создать дату и время
См. также:
  • ChronoLocalDateTime.from(TemporalAccessor)

zonedDateTime

public ZonedDateTime zonedDateTime(TemporalAccessor temporal)
Создает дату и время ISO с часовым поясом на основе другого объекта даты и времени.

Эквивалентно вызову ZonedDateTime.from(TemporalAccessor).

Определено в:
zonedDateTime в интерфейсе Chronology
Параметры:
temporal — объект даты и времени для преобразования, не null
Возвращает:
дату и время ISO с часовым поясом, не null
Вызывает исключение:
DateTimeException — если не удается создать дату и время
См. также:
  • ChronoZonedDateTime.from(TemporalAccessor)

zonedDateTime

public ZonedDateTime zonedDateTime(Instant instant, ZoneId zone)
Создает дату и время ISO с часовым поясом в этой хронике на основе Instant.

Эквивалентно вызову ZonedDateTime.ofInstant(Instant, ZoneId).

Определено в:
zonedDateTime в интерфейсе Chronology
Параметры:
instant — момент времени, на основе которого создается дата и время, не null
zone — часовой пояс, не null
Возвращает:
дату и время с часовым поясом, не null
Вызывает исключение:
DateTimeException — если результат выходит за поддерживаемый диапазон

dateNow

public LocalDate dateNow()
Получает текущую локальную дату ISO по системным часам в часовом поясе по умолчанию.

Для получения текущей даты выполняется обращение к system clock в часовом поясе по умолчанию.

Использование этого метода не позволяет применять другие часы для тестирования, поскольку часы заданы жестко.

Определено в:
dateNow в интерфейсе Chronology
Возвращает:
текущую локальную дату ISO по системным часам и в часовом поясе по умолчанию, не null
Вызывает исключение:
DateTimeException — если не удается создать дату

dateNow

public LocalDate dateNow(ZoneId zone)
Получает текущую локальную дату ISO по системным часам в указанном часовом поясе.

Для получения текущей даты выполняется обращение к system clock. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию.

Использование этого метода не позволяет применять другие часы для тестирования, поскольку часы заданы жестко.

Определено в:
dateNow в интерфейсе Chronology
Параметры:
zone — идентификатор часового пояса, который следует использовать, не null
Возвращает:
текущую локальную дату ISO по системным часам, не null
Вызывает исключение:
DateTimeException — если не удается создать дату

dateNow

public LocalDate dateNow(Clock clock)
Получает текущую локальную дату ISO по указанным часам.

Для получения текущей даты — сегодняшнего дня — выполняется обращение к указанным часам. Этот метод позволяет использовать другие часы для тестирования. Другие часы можно создать с помощью dependency injection.

Определено в:
dateNow в интерфейсе Chronology
Параметры:
clock — часы, которые следует использовать, не null
Возвращает:
текущую локальную дату ISO, не null
Вызывает исключение:
DateTimeException — если не удается создать дату

isLeapYear

public boolean isLeapYear(long prolepticYear)
Проверяет, является ли год високосным согласно правилам пролептической календарной системы ISO.

Этот метод применяет текущие правила високосных лет ко всей временной шкале. В общем случае год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 100, не являются високосными, за исключением годов, делящихся на 400.

Например, 1904 год является високосным, поскольку делится на 4. 1900 год не был високосным, поскольку делится на 100, однако 2000 год был високосным, поскольку делится на 400.

Вычисление является пролептическим: те же правила применяются к далекому будущему и далекому прошлому. С исторической точки зрения это неточно, но соответствует стандарту ISO-8601.

Определено в:
isLeapYear в интерфейсе Chronology
Параметры:
prolepticYear — пролептический год ISO для проверки
Возвращает:
true, если год високосный; иначе false

prolepticYear

public int prolepticYear(Era era, int yearOfEra)
Описание скопировано из интерфейса: Chronology
Вычисляет пролептический год по эре и году в эре.

Этот метод объединяет эру и год в эре в единое поле пролептического года.

Если хроника активно использует эры, например JapaneseChronology, год в эре проверяется на соответствие эре. Для других хроник проверка необязательна.

Определено в:
prolepticYear в интерфейсе Chronology
Параметры:
era — эра подходящего для хроники типа, не null
yearOfEra — год хроники в эре
Возвращает:
пролептический год

eraOf

public IsoEra eraOf(int eraValue)
Описание скопировано из интерфейса: Chronology
Создает объект эры хроники по числовому значению.

Эра концептуально является самым крупным подразделением временной шкалы. В большинстве календарных систем есть одна эпоха, разделяющая временную шкалу на две эры. Однако в некоторых системах существует несколько эр, например по одной для периода правления каждого правителя. Точное значение определяется хроникой с учетом следующих ограничений.

Эра, действующая на 1970-01-01, должна иметь значение 1. Последующие эры должны иметь последовательно возрастающие значения. Предшествующие эры должны иметь последовательно убывающие значения. Каждая хроника должна использовать enum или аналогичный singleton для представления значений эр.

Этот метод возвращает единственный объект эры подходящего типа для указанного значения эры.

Определено в:
eraOf в интерфейсе Chronology
Параметры:
eraValue — значение эры
Возвращает:
эру календарной системы, не null

eras

public List<Era> eras()
Описание скопировано из интерфейса: Chronology
Возвращает список эр хроники.

В большинстве календарных систем есть эра, в рамках которой имеет смысл понятие года. Если календарная система не поддерживает понятие эр, необходимо вернуть пустой список.

Определено в:
eras в интерфейсе Chronology
Возвращает:
список эр хроники; может быть неизменяемым, не null

resolveDate

public LocalDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
Преобразует разобранные значения ChronoField в дату в процессе разбора.

Большинство реализаций TemporalField разрешаются с помощью метода resolve соответствующего поля. В отличие от них, класс ChronoField определяет поля, имеющие смысл только относительно хроники. Поэтому поля даты ChronoField разрешаются здесь в контексте конкретной хроники.

Экземпляры ChronoField в календарной системе ISO разрешаются следующим образом.

  • EPOCH_DAY — если поле присутствует, оно преобразуется в LocalDate, после чего все остальные поля даты сверяются с полученной датой.
  • PROLEPTIC_MONTH — если поле присутствует, оно разделяется на YEAR и MONTH_OF_YEAR. В строгом и интеллектуальном режимах поле проверяется.
  • YEAR_OF_ERA и ERA — если присутствуют оба поля, они объединяются в YEAR. В нестрогом режиме диапазон YEAR_OF_ERA не проверяется, а в интеллектуальном и строгом режимах проверяется. Диапазон ERA проверяется во всех трех режимах. Если присутствует только YEAR_OF_ERA, а режим интеллектуальный или нестрогий, предполагается текущая эра (CE/AD). В строгом режиме эра не предполагается, а YEAR_OF_ERA остается без изменений. Если присутствует только ERA, оно остается без изменений.
  • YEAR, MONTH_OF_YEAR и DAY_OF_MONTH — если присутствуют все три поля, они объединяются в LocalDate. Во всех трех режимах проверяется YEAR. В интеллектуальном и строгом режимах проверяются месяц и день, причем день проверяется в диапазоне от 1 до 31. В нестрогом режиме дата объединяется так, как если бы сначала создавалась дата первого января указанного года, затем добавлялась разница в месяцах, а после нее — разница в днях. В интеллектуальном режиме, если день месяца больше максимального числа дней в указанном году и месяце, он корректируется до последнего дня месяца. В строгом режиме три поля должны образовывать допустимую дату.
  • YEAR и DAY_OF_YEAR — если присутствуют оба поля, они объединяются в LocalDate. Во всех трех режимах проверяется YEAR. В нестрогом режиме дата объединяется так, как если бы сначала создавалась дата первого января указанного года, а затем добавлялась разница в днях. В интеллектуальном и строгом режимах эти два поля должны образовывать допустимую дату.
  • YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH и ALIGNED_DAY_OF_WEEK_IN_MONTH — если присутствуют все четыре поля, они объединяются в LocalDate. Во всех трех режимах проверяется YEAR. В нестрогом режиме дата объединяется так, как если бы сначала создавалась дата первого января указанного года, затем добавлялась разница в месяцах, затем разница в неделях и, наконец, разница в днях. В интеллектуальном и строгом режимах все четыре поля проверяются на соответствие внешним границам допустимых диапазонов. Затем дата объединяется так, как если бы сначала создавалась дата первого дня указанного года и месяца, а затем к ней добавлялось заданное количество недель и дней. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила месяц.
  • YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH и DAY_OF_WEEK — если присутствуют все четыре поля, они объединяются в LocalDate. Метод аналогичен описанному выше для годов, месяцев и недель в ALIGNED_DAY_OF_WEEK_IN_MONTH. После обработки годов, месяцев и недель день недели корректируется до ближайшего следующего или текущего соответствующего дня недели.
  • YEAR, ALIGNED_WEEK_OF_YEAR и ALIGNED_DAY_OF_WEEK_IN_YEAR — если присутствуют все три поля, они объединяются в LocalDate. Во всех трех режимах проверяется YEAR. В нестрогом режиме дата объединяется так, как если бы сначала создавалась дата первого января указанного года, затем добавлялась разница в неделях, а после нее — разница в днях. В интеллектуальном и строгом режимах все три поля проверяются на соответствие внешним границам допустимых диапазонов. Затем дата объединяется так, как если бы сначала создавалась дата первого дня указанного года, а затем к ней добавлялось заданное количество недель и дней. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила год.
  • YEAR, ALIGNED_WEEK_OF_YEAR и DAY_OF_WEEK — если присутствуют все три поля, они объединяются в LocalDate. Метод аналогичен описанному выше для годов и недель в ALIGNED_DAY_OF_WEEK_IN_YEAR. После обработки годов и недель день недели корректируется до ближайшего следующего или текущего соответствующего дня недели.
Определено в:
resolveDate в интерфейсе Chronology
Переопределено в:
resolveDate в классе AbstractChronology
Параметры:
fieldValues — карта полей и значений, которую можно изменять, не null
resolverStyle — требуемый тип разрешения, не null
Возвращает:
разрешенную дату; null, если недостаточно данных для создания даты
Вызывает исключение:
DateTimeException — если не удается разрешить дату, обычно из-за противоречия во входных данных

range

public ValueRange range(ChronoField field)
Описание скопировано из интерфейса: Chronology
Возвращает диапазон допустимых значений для указанного поля.

Все поля можно представить в виде целого числа long. Этот метод возвращает объект, описывающий допустимый диапазон значений.

Обратите внимание, что результат описывает только минимальные и максимальные допустимые значения, и не следует придавать им слишком большое значение. Например, в диапазоне могут быть значения, недопустимые для этого поля.

Этот метод возвращает результат независимо от того, поддерживает ли хроника данное поле.

Определено в:
range в интерфейсе Chronology
Параметры:
field — поле, для которого требуется получить диапазон, не null
Возвращает:
диапазон допустимых значений поля, не null

period

public Period period(int years, int months, int days)
Создает период для этой хроники на основе лет, месяцев и дней.

Возвращается период, связанный с хроникой ISO и заданными годами, месяцами и днями. Дополнительные сведения см. в описании Period.

Определено в:
period в интерфейсе Chronology
Параметры:
years — количество лет; может быть отрицательным
months — количество лет; может быть отрицательным
days — количество лет; может быть отрицательным
Возвращает:
период ISO, не null

isIsoBased

public boolean isIsoBased()
IsoChronology — хроника на основе ISO, поддерживающая поля из IsoFields, например DAY_OF_QUARTER и QUARTER_OF_YEAR.
Определено в:
isIsoBased в интерфейсе Chronology
Возвращает:
true
Начиная с версии:
19
См. также:
  • IsoFields

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/chrono/IsoChronology.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API