Spec-Zone.ru › OpenJDK 21

Интерфейс Chronology

Все суперинтерфейсы:
Comparable<Chronology>
Все известные реализующие классы:
AbstractChronology, HijrahChronology, IsoChronology, JapaneseChronology, MinguoChronology, ThaiBuddhistChronology
public interface Chronology extends Comparable<Chronology>
Система календаря, используемая для организации и идентификации дат.

Основной API для дат и времени построен на системе календаря ISO. Хронология работает в фоновом режиме для представления общей концепции системы календаря. Например, японский, Мингуо, тайский буддийский и другие.

Большинство других систем календарей также работают на общих понятиях год, месяц и день, связанных с циклами Земли вокруг Солнца и Луны вокруг Земли. Эти общие понятия определяются ChronoField и доступны для использования любой Chronology реализацией:

   LocalDate isoDate = ...
   ThaiBuddhistDate thaiDate = ...
   int isoYear = isoDate.get(ChronoField.YEAR);
   int thaiYear = thaiDate.get(ChronoField.YEAR);
 
Как показано, хотя объекты даты находятся в разных системах календарей, представленных различными Chronology экземплярами, оба могут быть запрошены с использованием одного и того же константы в ChronoField. Для более подробного обсуждения последствий этого, см. ChronoLocalDate. В общем случае рекомендуется использовать известную систему ISO-основанную LocalDate, а не ChronoLocalDate.

Хотя объект Chronology обычно использует ChronoField и основан на модели даты эра, год-эры, месяц-года, день-месяца, это не обязательно. Экземпляр Chronology может представлять совершенно другую систему календаря, например, майянскую.

В практическом плане экземпляр Chronology также действует как фабрика. Метод of(String) позволяет получить экземпляр по идентификатору, а метод ofLocale(Locale) позволяет поиск по локали.

Экземпляр Chronology предоставляет набор методов для создания экземпляров ChronoLocalDate. Классы дат используются для управления конкретными датами.

  • dateNow()
  • dateNow(clock)
  • dateNow(zone)
  • date(yearProleptic, month, day)
  • date(era, yearOfEra, month, day)
  • dateYearDay(yearProleptic, dayOfYear)
  • dateYearDay(era, yearOfEra, dayOfYear)
  • date(TemporalAccessor)

Добавление новых календарей

Набор доступных хронологий может быть расширен приложениями. Добавление новой системы календаря требует написания реализации Chronology, ChronoLocalDate и Era. Большая часть логики, специфичной для системы календаря, будет в реализации ChronoLocalDate. Реализация Chronology действует как фабрика.

Для возможности обнаружения дополнительных хронологий используется ServiceLoader. Файл должен быть добавлен в каталог META-INF/services с именем 'java.time.chrono.Chronology', перечисляя классы реализации. Более подробную информацию о загрузке сервисов см. в ServiceLoader. Для поиска по идентификатору или типу календаря сначала находятся предоставленные системой календари, а затем — предоставленные приложением.

Каждая хронология должна определить идентификатор хронологии, уникальный в системе. Если хронология представляет систему календаря, определенную спецификацией CLDR, то тип календаря — это конкатенация типа CLDR и, при необходимости, варианта CLDR.

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

Краткое описание методов

Модификатор и тип Метод Описание
int compareTo(Chronology other)
Сравнивает эту хронологию с другой хронологией.
ChronoLocalDate date(int prolepticYear, int month, int dayOfMonth)
Получает локальную дату в этой хронологии из полей пролептического года, месяца и дня месяца.
default ChronoLocalDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Получает локальную дату в этой хронологии из полей эры, года эры, месяца и дня месяца.
ChronoLocalDate date(TemporalAccessor temporal)
Получает локальную дату в этой хронологии из другого временного объекта.
ChronoLocalDate dateEpochDay(long epochDay)
Получает локальную дату в этой хронологии из эпохи.
default ChronoLocalDate dateNow()
Получает текущую локальную дату в этой хронологии из системных часов в часовом поясе по умолчанию.
default ChronoLocalDate dateNow(Clock clock)
Получает текущую локальную дату в этой хронологии из указанных часов.
default ChronoLocalDate dateNow(ZoneId zone)
Получает текущую локальную дату в этой хронологии из системных часов в указанном часовом поясе.
ChronoLocalDate dateYearDay(int prolepticYear, int dayOfYear)
Получает локальную дату в этой хронологии из полей пролептического года и дня года.
default ChronoLocalDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
Получает локальную дату в этой хронологии из полей эры, года эры и дня года.
default long epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд с эпохи 1970-01-01T00:00:00Z.
default long epochSecond(Era era, int yearOfEra, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд с эпохи 1970-01-01T00:00:00Z.
boolean equals(Object obj)
Проверяет, равна ли эта хронология другой хронологии.
Era eraOf(int eraValue)
Создаёт объект эры хронологии из числового значения.
List<Era> eras()
Получает список эр для хронологии.
static Chronology from(TemporalAccessor temporal)
Получает экземпляр Chronology из временного объекта.
static Set<Chronology> getAvailableChronologies()
Возвращает доступные хронологии.
String getCalendarType()
Получает тип календаря календарной системы.
default String getDisplayName(TextStyle style, Locale locale)
Получает текстовое представление этой хронологии.
String getId()
Получает идентификатор хронологии.
int hashCode()
Хеш-код для этой хронологии.
default boolean isIsoBased()
Проверяет, основана ли эта хронология на ISO.
boolean isLeapYear(long prolepticYear)
Проверяет, является ли указанный год високосным.
default ChronoLocalDateTime<? extends ChronoLocalDate> localDateTime(TemporalAccessor temporal)
Получает локальное время в этой хронологии из другого временного объекта.
static Chronology of(String id)
Получает экземпляр Chronology из идентификатора хронологии или типа календарной системы.
static Chronology ofLocale(Locale locale)
Получает экземпляр Chronology из локали.
default ChronoPeriod period(int years, int months, int days)
Получает период для этой хронологии на основе лет, месяцев и дней.
int prolepticYear(Era era, int yearOfEra)
Вычисляет пролептический год, заданный эрой и годом эры.
ValueRange range(ChronoField field)
Получает диапазон допустимых значений для указанного поля.
ChronoLocalDate resolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)
Разрешает разобранные ChronoField значения в дату во время разбора.
String toString()
Выводит эту хронологию как String.
default ChronoZonedDateTime<? extends ChronoLocalDate> zonedDateTime(Instant instant, ZoneId zone)
Получает ChronoZonedDateTime в этой хронологии из Instant.
default ChronoZonedDateTime<? extends ChronoLocalDate> zonedDateTime(TemporalAccessor temporal)
Получает ChronoZonedDateTime в этой хронологии из другого временного объекта.

Методы

from

static Chronology from(TemporalAccessor temporal)
Получает экземпляр Chronology из временного объекта.

Это получает хронологию на основе указанного временного объекта. TemporalAccessor представляет собой произвольный набор информации о дате и времени, которую этот фабричный метод преобразует в экземпляр Chronology.

Преобразование получит хронологию, используя TemporalQueries.chronology(). Если у указанного временного объекта нет хронологии, возвращается IsoChronology.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод, Chronology::from.

Параметры:
temporal - преобразуемый временной объект, не null
Возвращает:
хронологию, не null
Исключения:
DateTimeException - если невозможно преобразовать во Chronology

ofLocale

static Chronology ofLocale(Locale locale)
Получает экземпляр Chronology из локали.

Это возвращает хронологию, основанную на указанной локали, обычно возвращая IsoChronology. Другие календарные системы возвращаются только в том случае, если они явно выбраны в локали.

Класс Locale обеспечивает доступ к ряду сведений, полезных для локализации приложения. В него входит язык и регион, например, "en-GB" для английского языка, используемого в Великобритании.

Класс Locale также поддерживает механизм расширения, который может использоваться для идентификации календарной системы. Механизм представляет собой набор пар «ключ-значение», где календарная система имеет ключ «ca». Например, локализация "en-JP-u-ca-japanese" представляет английский язык, используемый в Японии, с японской календарной системой.

Этот метод находит необходимую календарную систему аналогичным образом, передавая "ca" в Locale.getUnicodeLocaleType(String). Если ключ "ca" отсутствует, возвращается IsoChronology.

Обратите внимание, что поведение этого метода отличается от более старого метода Calendar.getInstance(Locale). Если этот метод получает локаль "th_TH", он вернёт BuddhistCalendar. В отличие от этого, этот метод вернёт IsoChronology. Передача локали "th-TH-u-ca-buddhist" в любой из методов приведет к тайской буддийской календарной системе, и поэтому этот подход рекомендуется для локализации тайской календарной системы в дальнейшем.

Аналогичная, но более простая ситуация возникает для японской календарной системы. Ранее локализация "jp_JP_JP" использовалась для доступа к календарю. Однако, в отличие от тайской локали, "ja_JP_JP" автоматически преобразуется Locale в современную и рекомендуемую форму "ja-JP-u-ca-japanese". Таким образом, разницы в поведении между этим методом и Calendar#getInstance(Locale) нет.

Параметры:
locale - локализация, используемая для получения календарной системы, не null
Возвращает:
календарная система, связанная с локалью, не null
Исключения:
DateTimeException - если календарная система, указанная в локали, не найдена

of

static Chronology of(String id)
Получает экземпляр Chronology по идентификатору хронологии или типу календарной системы.

Это возвращает хронологию на основе идентификатора или типа. chronology ID однозначно идентифицирует хронологию. calendar system type определяется спецификацией CLDR.

Хронология может быть системной или предоставленной приложением через конфигурацию ServiceLoader.

Поскольку некоторые календари могут быть настраиваемыми, идентификатор или тип обычно относятся к стандартной настройке. Например, григорианский календарь может иметь несколько дат перехода от юлианского, но поиск предоставляет только стандартную дату перехода.

Параметры:
id - идентификатор хронологии или тип календарной системы, не null
Возвращает:
хронология с запрошенным идентификатором, не null
Исключения:
DateTimeException - если хронология не найдена

getAvailableChronologies

static Set<Chronology> getAvailableChronologies()
Возвращает доступные хронологии.

Каждая возвращаемая Chronology доступна для использования в системе. Набор хронологий включает системные хронологии и любые хронологии, предоставленные приложением через конфигурацию ServiceLoader.

Возвращает:
независимый, изменяемый набор доступных идентификаторов хронологий, не null

getId

String getId()
Получает идентификатор хронологии.

Идентификатор однозначно идентифицирует Chronology. Его можно использовать для поиска Chronology с помощью of(String).

Возвращает:
идентификатор хронологии, не null
См. также:
  • getCalendarType()

getCalendarType

String getCalendarType()
Получает тип календаря календарной системы.

Тип календаря — это идентификатор, определённый спецификациями CLDR и Unicode Locale Data Markup Language (LDML), для однозначной идентификации календаря. getCalendarType — это конкатенация типа календаря CLDR и варианта, если он есть, присоединённая через «-». Тип календаря используется для поиска Chronology с помощью of(String).

Возвращает:
тип календарной системы, null, если календарь не определён CLDR/LDML
См. также:
  • getId()

date

default ChronoLocalDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Получает локальную дату в этой хронологии по эре, году, месяцу и дню.
Требования к реализации:
В стандартной реализации эра и год объединяются в пролептический год перед вызовом date(int, int, int).
Параметры:
era - эра соответствующего типа для хронологии, не null
yearOfEra - год в хронологии
month - месяц в хронологии
dayOfMonth - день в хронологии
Возвращает:
локальную дату в этой хронологии, не null
Исключения:
DateTimeException - если дату невозможно создать
ClassCastException - если эра не соответствует типу хронологии

date

ChronoLocalDate date(int prolepticYear, int month, int dayOfMonth)
Получает локальную дату в этой хронологии по пролептическому году, месяцу и дню.
Параметры:
prolepticYear - пролептический год в хронологии
month - месяц в хронологии
dayOfMonth - день в хронологии
Возвращает:
локальную дату в этой хронологии, не null
Исключения:
DateTimeException - если дату невозможно создать

dateYearDay

default ChronoLocalDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
Получает локальную дату в этой хронологии по эре, году и дню года.
Требования к реализации:
В стандартной реализации эра и год объединяются в пролептический год перед вызовом dateYearDay(int, int).
Параметры:
era - эра соответствующего типа для хронологии, не null
yearOfEra - год в хронологии
dayOfYear - день года в хронологии
Возвращает:
локальную дату в этой хронологии, не null
Исключения:
DateTimeException - если дату невозможно создать
ClassCastException - если эра не соответствует типу хронологии

dateYearDay

ChronoLocalDate dateYearDay(int prolepticYear, int dayOfYear)
Получает локальную дату в этой хронологии по пролептическому году и дню года.
Параметры:
prolepticYear - пролептический год в хронологии
dayOfYear - день года в хронологии
Возвращает:
локальную дату в этой хронологии, не null
Исключения:
DateTimeException - если дату невозможно создать

dateEpochDay

ChronoLocalDate dateEpochDay(long epochDay)
Получает локальную дату в этой хронологии по числу эпохи.

Определение EPOCH_DAY одинаково для всех календарных систем, поэтому его можно использовать для преобразования.

Параметры:
epochDay - число эпохи
Возвращает:
локальную дату в этой хронологии, не null
Исключения:
DateTimeException - если дату невозможно создать

dateNow

default ChronoLocalDate dateNow()
Получает текущую локальную дату в этой хронологии из системных часов в часовом поясе по умолчанию.

Это запросит system clock в часовом поясе по умолчанию, чтобы получить текущую дату.

Использование этого метода запретит возможность использования альтернативных часов для тестирования, поскольку часы закодированы.

Требования к реализации:
Стандартная реализация вызывает dateNow(Clock).
Возвращает:
текущую локальную дату с использованием системных часов и часового пояса по умолчанию, не null
Исключения:
DateTimeException - если дату невозможно создать

dateNow

default ChronoLocalDate dateNow(ZoneId zone)
Получает текущую локальную дату в этой хронологии из системных часов в указанной временной зоне.

Это обратится к system clock, чтобы получить текущую дату. Указание временной зоны позволяет избежать зависимости от временной зоны по умолчанию.

Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, так как часы жестко закодированы.

Требования к реализации:
По умолчанию реализация вызывает dateNow(Clock).
Параметры:
zone - идентификатор зоны, который нужно использовать, не null
Возвращает:
текущую локальную дату, используя системные часы, не null
Выбрасывает:
DateTimeException - если дата не может быть создана

dateNow

default ChronoLocalDate dateNow(Clock clock)
Получает текущую локальную дату в этой хронологии из указанных часов.

Это обратится к указанным часам, чтобы получить текущую дату — сегодня. Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы можно задать с помощью dependency injection.

Требования к реализации:
По умолчанию реализация вызывает date(TemporalAccessor).
Параметры:
clock - используемые часы, не null
Возвращает:
текущую локальную дату, не null
Выбрасывает:
DateTimeException - если дата не может быть создана

date

ChronoLocalDate date(TemporalAccessor temporal)
Получает локальную дату в этой хронологии из другого временного объекта.

Это получает дату в этой хронологии на основе указанного временного объекта. Объект TemporalAccessor представляет собой произвольный набор информации о дате и времени, который эта фабрика преобразует в экземпляр ChronoLocalDate.

Преобразование обычно использует поле EPOCH_DAY, которое стандартизировано для всех систем календарей.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, aChronology::date.

Параметры:
temporal - преобразуемый временной объект, не null
Возвращает:
локальную дату в этой хронологии, не null
Выбрасывает:
DateTimeException - если дата не может быть создана
См. также:
  • ChronoLocalDate.from(TemporalAccessor)

localDateTime

default ChronoLocalDateTime<? extends ChronoLocalDate> localDateTime(TemporalAccessor temporal)
Получает локальное время и дату в этой хронологии из другого временного объекта.

Это получает время и дату в этой хронологии на основе указанного временного объекта. Объект TemporalAccessor представляет собой произвольный набор информации о дате и времени, который эта фабрика преобразует в экземпляр ChronoLocalDateTime.

Преобразование извлекает и объединяет ChronoLocalDate и LocalTime из временного объекта. Реализациям разрешено выполнять оптимизации, такие как доступ к тем полям, которые эквивалентны соответствующим объектам. Результат использует эту хронологию.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, aChronology::localDateTime.

Параметры:
temporal - преобразуемый временной объект, не null
Возвращает:
локальное время и дату в этой хронологии, не null
Выбрасывает:
DateTimeException - если время и дата не могут быть созданы
См. также:
  • ChronoLocalDateTime.from(TemporalAccessor)

zonedDateTime

default ChronoZonedDateTime<? extends ChronoLocalDate> zonedDateTime(TemporalAccessor temporal)
Получает ChronoZonedDateTime в этой хронологии из другого временного объекта.

Это получает поясное время и дату в этой хронологии на основе указанного временного объекта. Объект TemporalAccessor представляет собой произвольный набор информации о дате и времени, который эта фабрика преобразует в экземпляр ChronoZonedDateTime.

Преобразование сначала получит ZoneId из временного объекта, используя ZoneOffset в качестве резервного варианта. Затем оно попытается получить Instant, используя ChronoLocalDateTime в качестве резервного варианта. Результатом будет либо комбинация ZoneId или ZoneOffset с Instant или ChronoLocalDateTime. Реализациям разрешено выполнять оптимизации, такие как доступ к тем полям, которые эквивалентны соответствующим объектам. Результат использует эту хронологию.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, aChronology::zonedDateTime.

Параметры:
temporal - преобразуемый временной объект, не null
Возвращает:
поясное время и дату в этой хронологии, не null
Выбрасывает:
DateTimeException - если время и дата не могут быть созданы
См. также:
  • ChronoZonedDateTime.from(TemporalAccessor)

zonedDateTime

default ChronoZonedDateTime<? extends ChronoLocalDate> zonedDateTime(Instant instant, ZoneId zone)
Получает ChronoZonedDateTime в этой хронологии из Instant.

Это получает поясное время и дату с тем же мгновением, что и указанное.

Параметры:
instant - мгновение для создания времени и даты, не null
zone - временная зона, не null
Возвращает:
поясное время и дату, не null
Выбрасывает:
DateTimeException - если результат выходит за поддерживаемый диапазон

isLeapYear

boolean isLeapYear(long prolepticYear)
Проверяет, является ли указанный год високосным.

Високосный год — это год, длина которого больше обычной. Точное значение определяется хронологией в соответствии со следующими ограничениями.

  • Високосный год должен подразумевать длину года, большую, чем у невисокосного.
  • Хронология, которая не поддерживает понятие года, должна возвращать false.
  • Должен возвращаться правильный результат для всех лет в допустимом диапазоне для хронологии.

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

Параметры:
prolepticYear - пролептический год для проверки, диапазон не проверяется
Возвращает:
true, если год високосный

prolepticYear

int prolepticYear(Era era, int yearOfEra)
Вычисляет пролептический год, заданный эрой и годом эры.

Это объединяет эру и год эры в единственное поле пролептического года.

Если хронология активно использует эры, такие как JapaneseChronology, то год эры будет проверен на соответствие эры. Для других хронологий валидация необязательна.

Параметры:
era - эра правильного типа для хронологии, не null
yearOfEra - год эры хронологии
Возвращает:
пролептический год
Выбрасывает:
DateTimeException - если не удается преобразовать в пролептический год, например, если год недействителен для эры
ClassCastException - если era не является правильного типа для хронологии

eraOf

Era eraOf(int eraValue)
Создает объект эры хронологии из числового значения.

Эра, по сути, самая большая единица отсчета на временной шкале. Большинство систем календарей имеют единственную эпоху, разделяющую временную шкалу на две эры. Однако некоторые имеют несколько эр, например, по одному за правление каждого лидера. Точное значение определяется хронологией в соответствии со следующими ограничениями.

Эра, используемая в 1970-01-01, должна иметь значение 1. Более поздние эры должны иметь последовательно большие значения. Более ранние эры должны иметь последовательно меньшие значения. Каждая хронология должна ссылаться на перечисление или аналогичный синглтон для предоставления значений эры.

Этот метод возвращает синглтон эры правильного типа для указанного значения эры.

Параметры:
eraValue - значение эры
Возвращает:
эра системы календаря, не null
Выбрасывает:
DateTimeException - если эра не может быть создана

eras

List<Era> eras()
Получает список эр для хронологии.

Большинство систем календарей имеют эру, в рамках которой год имеет смысл. Если система календарей не поддерживает понятие эр, должен возвращаться пустой список.

Возвращает:
список эр для хронологии, может быть неизменяемым, не null

range

ValueRange range(ChronoField field)
Получает диапазон допустимых значений для указанного поля.

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

Обратите внимание, что результат описывает только минимальные и максимальные допустимые значения, и не стоит в них слишком углубляться. Например, могут быть значения в диапазоне, которые являются недопустимыми для поля.

Этот метод вернёт результат, поддерживает ли хронология поле или нет.

Параметры:
field - поле, для которого нужно получить диапазон, не null
Возвращает:
диапазон допустимых значений для поля, не null
Выбрасывает:
DateTimeException - если диапазон для поля получить невозможно

getDisplayName

default String getDisplayName(TextStyle style, Locale locale)
Получает текстовое представление этой хронологии.

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

Требования к реализации:
Стандартная реализация ведет себя так, как будто форматировщик используется для форматирования текстового имени хронологии.
Параметры:
style - стиль требуемого текста, не null
locale - языковое окружение для использования, не null
Возвращает:
текстовое значение хронологии, не null

resolveDate

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

Большинство TemporalField реализаций разрешаются с помощью метода resolve для поля. В отличие от этого, класс ChronoField определяет поля, которые имеют смысл только относительно хронологии. Таким образом, поля даты ChronoField разрешаются здесь в контексте конкретной хронологии.

Стандартная реализация, которая объясняет типичное поведение resolve, представлена в AbstractChronology.

Параметры:
fieldValues - карта полей к значениям, которая может быть обновлена, не null
resolverStyle - требуемый тип разрешения, не null
Возвращает:
разрешённую дату, null, если недостаточно информации для создания даты
Исключения:
DateTimeException - если дата не может быть разрешена, обычно из-за конфликта в входных данных

period

default ChronoPeriod period(int years, int months, int days)
Получает период для этой хронологии на основе лет, месяцев и дней.

Возвращает период, привязанный к этой хронологии, с использованием указанных лет, месяцев и дней. Все предоставленные хронологии используют периоды на основе лет, месяцев и дней, однако API ChronoPeriod позволяет представлять период с использованием других единиц.

Требования к реализации:
Стандартная реализация возвращает реализацию класса, подходящую для большинства систем календаря. Она основана только на трёх единицах. Нормализация, сложение и вычитание выводят количество месяцев в году из range(ChronoField). Если количество месяцев в году фиксировано, то подход к вычислению сложения, вычитания и нормализации немного отличается.

Если вы реализуете необычную систему календаря, которая не основана на годах, месяцах и днях, или где вы хотите прямой контроль, то интерфейс ChronoPeriod должен быть реализован непосредственно.

Возвращаемый период неизменяем и потокобезопасен.

Параметры:
years - количество лет, может быть отрицательным
months - количество месяцев, может быть отрицательным
days - количество дней, может быть отрицательным
Возвращает:
период в терминах этой хронологии, не null

epochSecond

default long epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд с эпохи 1970-01-01T00:00:00Z.

Количество секунд вычисляется с использованием пролептического года, месяца, дня месяца, часа, минуты, секунды и часового смещения.

Параметры:
prolepticYear - пролептический год хронологии
month - месяц хронологии
dayOfMonth - день месяца хронологии
hour - час дня, от 0 до 23
minute - минута часа, от 0 до 59
second - секунда минуты, от 0 до 59
zoneOffset - часовой сдвиг, не null
Возвращает:
количество секунд относительно 1970-01-01T00:00:00Z, может быть отрицательным
Исключения:
DateTimeException - если любое из значений находится вне диапазона
С:
9

epochSecond

default long epochSecond(Era era, int yearOfEra, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд с эпохи 1970-01-01T00:00:00Z.

Количество секунд вычисляется с использованием эры, года эры, месяца, дня месяца, часа, минуты, секунды и часового смещения.

Параметры:
era - эра правильного типа для хронологии, не null
yearOfEra - год эры хронологии
month - месяц хронологии
dayOfMonth - день месяца хронологии
hour - час дня, от 0 до 23
minute - минута часа, от 0 до 59
second - секунда минуты, от 0 до 59
zoneOffset - часовой сдвиг, не null
Возвращает:
количество секунд относительно 1970-01-01T00:00:00Z, может быть отрицательным
Исключения:
DateTimeException - если любое из значений находится вне диапазона
С:
9

isIsoBased

default boolean isIsoBased()
Проверяет, основана ли эта хронология на ISO.

Хронология, основанная на ISO, имеет ту же основную структуру, что и ISO chronology, т.е. хронология имеет то же количество месяцев, количество дней в каждом месяце, и день года и високосные годы такие же, как и в ISO хронологии. Она также поддерживает концепцию недели-базового года ISO хронологии. Например, хронологии Minguo, ThaiThaiBuddhist и Japanese основаны на ISO.

Требования к реализации:
Стандартная реализация возвращает false.
Возвращает:
true только если все поля IsoFields поддерживаются этой хронологией. В противном случае возвращает false.
С:
19
См. также:
  • IsoChronology
  • JapaneseChronology
  • MinguoChronology
  • ThaiBuddhistChronology
  • IsoFields

compareTo

int compareTo(Chronology other)
Сравнивает эту хронологию с другой хронологией.

Порядок сравнения сначала по строке идентификатора хронологии, а затем по любой дополнительной информации, специфичной для подкласса. Он «согласован с equals», как определено в Comparable.

Определено в:
compareTo в интерфейсе Comparable<Chronology>
Параметры:
other - другая хронология для сравнения, не null
Возвращает:
значение сравнения, т.е. эта строка идентификатора, сравненная со строкой идентификатора other, если строки идентификаторов равны, и хронология различает экземпляры с помощью дополнительной информации

equals

boolean equals(Object obj)
Проверяет, равна ли эта хронология другой хронологии.

Сравнение основано на полном состоянии объекта.

Переопределяет:
equals в классе Object
Параметры:
obj - объект для проверки, null возвращает false
Возвращает:
true, если эта хронология равна другой хронологии
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Хеш-код для этой хронологии.

Хеш-код должен быть основан на полном состоянии объекта.

Переопределяет:
hashCode в классе Object
Возвращает:
подходящий хеш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

String toString()
Выводит эту хронологию как String.

Формат должен включать все состояние объекта.

Переопределяет:
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/Chronology.html

Spec-Zone.ru

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