Spec-Zone.ru › OpenJDK 24

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

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

С:
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, используя идентификатор хронологии.

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

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

Методы, объявленные в интерфейсе java.time.chrono.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(). Реализация предполагает семидневную неделю, что первый день месяца имеет значение 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(java.lang.Object)

toString

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/chrono/AbstractChronology.html

Spec-Zone.ru

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