Класс 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
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | AbstractChronology() | Создаёт экземпляр. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
int | compareTo(Chronology other) | Сравнивает эту хронологию с другой хронологией. |
boolean | equals(Object obj) | Проверяет, равна ли эта хронология другой хронологии. |
int | hashCode() | Хеш-код для этой хронологии. |
ChronoLocalDate | resolveDate(Map<TemporalField,Long> fieldValues,
ResolverStyle resolverStyle) | Разрешает значения |
String | toString() | Выводит эту хронологию в виде |
Методы, объявленные в классе 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 реализаций разрешаются с помощью метода resolve для поля. В противоположность этому, класс TemporalField определяет поля, которые имеют смысл только относительно хронологии. Таким образом, поля даты 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, если эта хронология равна другой
- См. также:
-
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, 2020, 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/11/docs/api/java.base/java/time/chrono/AbstractChronology.html