Spec-Zone.ru › OpenJDK 17

Интерфейс 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()
Хеш-код этой хронологии.
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)
Получает локальную дату в этой хронологии из другого временного объекта.

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

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

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

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

localDateTime

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

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

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

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

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

zonedDateTime

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

Это получает зонированное время и дату в этой хронологии, основываясь на указанном временном объекте. A 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)
Получает период для этой хронологии на основе лет, месяцев и дней.

Возвращает период, привязанный к этой хронологии, используя указанные годы, месяцы и дни. Все предоставленные хронологии используют периоды, основанные на годах, месяцах и днях, однако 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

compareTo

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

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

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

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

Spec-Zone.ru

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