Spec-Zone.ru › OpenJDK 21

Класс 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(). Реализация предполагает 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(java.lang.Object)

toString

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

© 1993, 2023, 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/21/docs/api/java.base/java/time/chrono/AbstractChronology.html

Spec-Zone.ru

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