Spec-Zone.ru › OpenJDK 27

Класс AbstractChronology

java.lang.Object
java.time.chrono.AbstractChronology
Все реализуемые интерфейсы:
Comparable<Chronology>, Chronology
Прямые известные подклассы:
HijrahChronology, IsoChronology, JapaneseChronology, MinguoChronology, ThaiBuddhistChronology
public abstract class AbstractChronology extends Object implements Chronology
Абстрактная реализация календарной системы, используемая для организации дат и их идентификации.

Основной API для работы с датой и временем построен на календарной системе ISO. Хронология действует в фоновом режиме, представляя общее понятие календарной системы.

Дополнительные сведения см. в Chronology.

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

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

С версии:
1.8

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

AbstractChronology()
Модификатор Конструктор Описание
protected
Создает экземпляр.

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

Модификатор и тип Метод Описание
int compareTo(Chronology other)
Сравнивает эту хронологию с другой хронологией.
boolean equals(Object obj)
Проверяет, равна ли эта хронология другой хронологии.
int hashCode()
Хэш-код этой хронологии.
ChronoLocalDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
Преобразует разобранные значения ChronoField в дату в процессе разбора.
String toString()
Представляет эту хронологию в виде String, используя идентификатор хронологии.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения определенного времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения определенного времени.

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

date, date, date, dateEpochDay, dateNow, dateNow, dateNow, dateYearDay, dateYearDay, epochSecond, epochSecond, eraOf, eras, getCalendarType, getDisplayName, getId, isIsoBased, isLeapYear, localDateTime, period, prolepticYear, range, zonedDateTime, zonedDateTime
Модификатор и тип Метод Описание
ChronoLocalDate date(int prolepticYear, int month, int dayOfMonth)
Получает локальную дату в этой хронологии из полей пролептического года, месяца года и дня месяца.
default ChronoLocalDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Получает локальную дату в этой хронологии из полей эры, года эры, месяца года и дня месяца.
ChronoLocalDate date(TemporalAccessor temporal)
Получает локальную дату в этой хронологии из другого объекта даты и времени.
ChronoLocalDate dateEpochDay(long epochDay)
Получает локальную дату в этой хронологии из дня эпохи.
default ChronoLocalDate dateNow()
Получает текущую локальную дату в этой хронологии по системным часам в часовом поясе по умолчанию.
default ChronoLocalDate dateNow(Clock clock)
Получает текущую локальную дату в этой хронологии по указанным часам.
default ChronoLocalDate dateNow(ZoneId zone)
Получает текущую локальную дату в этой хронологии по системным часам в указанном часовом поясе.
ChronoLocalDate dateYearDay(int prolepticYear, int dayOfYear)
Получает локальную дату в этой хронологии из полей пролептического года и дня года.
default ChronoLocalDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
Получает локальную дату в этой хронологии из полей эры, года эры и дня года.
default long epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд с начала эпохи 1970-01-01T00:00:00Z.
default long epochSecond(Era era, int yearOfEra, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд с начала эпохи 1970-01-01T00:00:00Z.
Era eraOf(int eraValue)
Создает объект эры хронологии из числового значения.
List<Era> eras()
Получает список эр этой хронологии.
String getCalendarType()
Получает тип календаря календарной системы.
default String getDisplayName(TextStyle style, Locale locale)
Получает текстовое представление этой хронологии.
String getId()
Получает идентификатор хронологии.
default boolean isIsoBased()
Проверяет, основана ли эта хронология на ISO.
boolean isLeapYear(long prolepticYear)
Проверяет, является ли указанный год високосным.
default ChronoLocalDateTime<? extends ChronoLocalDate> localDateTime(TemporalAccessor temporal)
Получает локальные дату и время в этой хронологии из другого объекта даты и времени.
default ChronoPeriod period(int years, int months, int days)
Получает период для этой хронологии на основе лет, месяцев и дней.
int prolepticYear(Era era, int yearOfEra)
Вычисляет пролептический год по эре и году эры.
ValueRange range(ChronoField field)
Получает диапазон допустимых значений для указанного поля.
default ChronoZonedDateTime<? extends ChronoLocalDate> zonedDateTime(Instant instant, ZoneId zone)
Получает ChronoZonedDateTime в этой хронологии из Instant.
default ChronoZonedDateTime<? extends ChronoLocalDate> zonedDateTime(TemporalAccessor temporal)
Получает ChronoZonedDateTime в этой хронологии из другого объекта даты и времени.

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

AbstractChronology

protected AbstractChronology()
Создает экземпляр.

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

resolveDate

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

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

Экземпляры ChronoField разрешаются этим методом, который может быть переопределен в подклассах.

  • EPOCH_DAY — если присутствует, преобразуется в дату, после чего все остальные поля даты сверяются с этой датой.
  • PROLEPTIC_MONTH — если присутствует, разделяется на YEAR и MONTH_OF_YEAR. В строгом или интеллектуальном режиме поле проверяется.
  • YEAR_OF_ERA и ERA — если присутствуют оба поля, они объединяются в YEAR. В нестрогом режиме диапазон YEAR_OF_ERA не проверяется, а в интеллектуальном и строгом режимах проверяется. ERA проверяется на соответствие диапазону во всех трех режимах. Если присутствует только YEAR_OF_ERA, а режим интеллектуальный или нестрогий, предполагается последняя доступная эра. В строгом режиме эра не предполагается, а YEAR_OF_ERA остается без изменений. Если присутствует только ERA, он остается без изменений.
  • YEAR, MONTH_OF_YEAR и DAY_OF_MONTH — если присутствуют все три поля, они объединяются для формирования даты. Во всех трех режимах проверяется YEAR. В интеллектуальном или строгом режиме проверяются месяц и день. В нестрогом режиме дата формируется так, как если бы сначала была создана дата первого дня первого месяца указанного года, затем добавлена разница в месяцах, а затем разница в днях. Если режим интеллектуальный и день месяца больше максимального значения для данного года и месяца, день месяца корректируется до последнего дня месяца. В строгом режиме три поля должны образовывать допустимую дату.
  • YEAR и DAY_OF_YEAR — если присутствуют оба поля, они объединяются для формирования даты. Во всех трех режимах проверяется YEAR. В нестрогом режиме дата формируется так, как если бы сначала была создана дата первого дня указанного года, а затем добавлена разница в днях. В интеллектуальном или строгом режиме два поля должны образовывать допустимую дату.
  • YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH и ALIGNED_DAY_OF_WEEK_IN_MONTH — если присутствуют все четыре поля, они объединяются для формирования даты. Во всех трех режимах проверяется YEAR. В нестрогом режиме дата формируется так, как если бы сначала была создана дата первого дня первого месяца указанного года, затем добавлена разница в месяцах, затем в неделях, а затем в днях. В интеллектуальном или строгом режиме все четыре поля проверяются на соответствие их внешним диапазонам. Затем дата формируется так, как если бы сначала была создана дата первого дня указанного года и месяца, а затем добавлено указанное количество недель и дней. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила месяц.
  • YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH и DAY_OF_WEEK — если присутствуют все четыре поля, они объединяются для формирования даты. Способ аналогичен описанному выше для лет, месяцев и недель в ALIGNED_DAY_OF_WEEK_IN_MONTH. После обработки лет, месяцев и недель день недели корректируется до следующего совпадающего дня недели или остается без изменения, если уже совпадает.
  • YEAR, ALIGNED_WEEK_OF_YEAR и ALIGNED_DAY_OF_WEEK_IN_YEAR — если присутствуют все три поля, они объединяются для формирования даты. Во всех трех режимах проверяется YEAR. В нестрогом режиме дата формируется так, как если бы сначала была создана дата первого дня указанного года, затем добавлена разница в неделях, а затем в днях. В интеллектуальном или строгом режиме все три поля проверяются на соответствие их внешним диапазонам. Затем дата формируется так, как если бы сначала была создана дата первого дня указанного года, а затем добавлено указанное количество недель и дней. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила год.
  • YEAR, ALIGNED_WEEK_OF_YEAR и DAY_OF_WEEK — если присутствуют все три поля, они объединяются для формирования даты. Способ аналогичен описанному выше для лет и недель в ALIGNED_DAY_OF_WEEK_IN_YEAR. После обработки лет и недель день недели корректируется до следующего совпадающего дня недели или остается без изменения, если уже совпадает.

Реализация по умолчанию подходит для большинства календарных систем. Если найдено ChronoField.YEAR_OF_ERA без ChronoField.ERA, используется последняя эра из Chronology.eras(). Реализация предполагает, что неделя состоит из 7 дней, значение первого дня месяца равно 1, значение первого дня года равно 1, а первый день месяца и года всегда существует.

Определено в:
resolveDate в интерфейсе Chronology
Параметры:
fieldValues — карта полей и значений, которую можно обновлять; не null
resolverStyle — запрошенный тип разрешения; не null
Возвращает:
разрешенную дату или null, если сведений недостаточно для создания даты
Исключения:
DateTimeException — если дату невозможно разрешить, обычно из-за конфликта входных данных

compareTo

public int compareTo(Chronology other)
Сравнивает эту хронологию с другой хронологией.

Порядок сравнения определяется сначала строкой идентификатора хронологии, а затем любыми дополнительными сведениями, специфичными для подкласса. Он «согласован с equals» в соответствии с определением Comparable.

Определено в:
compareTo в интерфейсе Chronology
Определено в:
compareTo в интерфейсе Comparable<Chronology>
Требования к реализации:
Эта реализация сравнивает идентификаторы хронологий. Подклассы должны сравнивать любые дополнительные хранимые данные.
Параметры:
other — хронология для сравнения; не null
Возвращает:
значение компаратора, то есть результат сравнения строки идентификатора этой хронологии со строкой идентификатора other

equals

public boolean equals(Object obj)
Проверяет, равна ли эта хронология другой хронологии.

Сравнение выполняется на основе всего состояния объекта.

Определено в:
equals в интерфейсе Chronology
Переопределяет:
equals в классе Object
Требования к реализации:
Эта реализация проверяет тип и вызывает compareTo(java.time.chrono.Chronology).
Параметры:
obj — проверяемый объект; null возвращает false
Возвращает:
true, если эта хронология равна другой хронологии
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хэш-код этой хронологии.

Хэш-код должен быть основан на всем состоянии объекта.

Определено в:
hashCode в интерфейсе Chronology
Переопределяет:
hashCode в классе Object
Требования к реализации:
Эта реализация основана на идентификаторе и классе хронологии. Подклассы должны добавлять любые дополнительные хранимые данные.
Возвращает:
подходящий хэш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Представляет эту хронологию в виде String, используя идентификатор хронологии.
Определено в:
toString в интерфейсе Chronology
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этой хронологии; не null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее филиалов в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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