Spec-Zone.ru › OpenJDK 24

Интерфейс 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. В общем случае рекомендуется использовать известный LocalDate на основе ISO, а не 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. При поиске по ID или типу календаря сначала находятся календари, предоставленные системой, а затем — календари, предоставленные приложением.

Каждая хронология должна определить идентификатор хронологии, уникальный в системе. Если хронология представляет систему календаря, определенную спецификацией 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()
Получает ID хронологии.
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 из локали.

Это возвращает 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 - если era не является корректного типа для хронологии

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 - если era не является корректного типа для хронологии

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 поля даты разрешаются здесь в контексте конкретной хронологии.

Базовая реализация, объясняющая типичное поведение разрешения, приведена в AbstractChronology.

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

period

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

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

Требования к реализации:
Базовая реализация возвращает реализацию класса, подходящую для большинства календарных систем. Она основана только на трех единицах. Нормализация, сложение и вычитание выводят число месяцев в году из 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
END_OF_DOCUMENT_MARKER

hashCode

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

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

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

toString

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

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

Overrides:
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/Chronology.html

Spec-Zone.ru

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