Spec-Zone.ru › OpenJDK 25

Класс 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, неизменяемыми и потокобезопасными. По возможности подклассы должны быть сериализуемыми.

С версии:
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

Методы, объявленные в интерфейсе 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

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

AbstractChronology

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

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

resolveDate

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

Большинство реализаций TemporalField разрешаются с помощью метода resolve соответствующего поля. В отличие от них, класс 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, 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/AbstractChronology.html

Spec-Zone.ru

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