Класс 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
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает экземпляр. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
compareTo |
Сравнивает эту хронологию с другой хронологией. |
boolean |
equals |
Проверяет, равна ли эта хронология другой хронологии. |
int |
hashCode() |
Хеш-код для этой хронологии. |
ChronoLocalDate |
resolveDate |
Разрешает значения 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, 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 - Возвращает:
- значение компаратора, отрицательное, если меньше, положительное, если больше
equals
public boolean equals(Object obj)
Сравнение основано на полном состоянии объекта.
- Определено:
-
equalsв интерфейсеChronology - Переопределяет:
-
equalsв классеObject - Требования к реализации:
- Эта реализация проверяет тип и вызывает
compareTo(java.time.chrono.Chronology). - Параметры:
-
obj- объект для проверки, null возвращает false - Возвращает:
- true, если эта хронология равна другой
- См. также:
hashCode
public int hashCode()
Хэш-код должен основываться на полном состоянии объекта.
- Определено:
-
hashCodeв интерфейсеChronology - Переопределяет:
-
hashCodeв классеObject - Требования к реализации:
- Эта реализация основана на идентификаторе хронологии и классе. Подклассы должны добавить любое дополнительное состояние, которое они хранят.
- Возвращает:
- подходящий хэш-код
- См. также:
toString
public String toString()
String, используя идентификатор хронологии.- Определено:
-
toStringв интерфейсеChronology - Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление этой хронологии, не null
© 1993, 2021, 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/17/docs/api/java.base/java/time/chrono/AbstractChronology.html