Spec-Zone.ru › OpenJDK 27

Класс HijrahDate

java.lang.Object
java.time.chrono.HijrahDate
Все реализуемые интерфейсы:
Serializable, Comparable<ChronoLocalDate>, ChronoLocalDate, Temporal, TemporalAccessor, TemporalAdjuster
public final class HijrahDate extends Object implements ChronoLocalDate, Serializable
Дата в календарной системе хиджры.

Эта дата использует один из вариантов календаря хиджры.

В календаре хиджры в году иное общее количество дней, чем в григорианском календаре, а продолжительность каждого месяца определяется периодом полного оборота Луны вокруг Земли (то есть временем между последовательными новолуниями). Подробную информацию о поддерживаемых вариантах см. в HijrahChronology.

Каждый объект HijrahDate создается и связывается с определенной HijrahChronology. Та же хронология распространяется на каждый объект HijrahDate, вычисленный на основе этой даты. Чтобы использовать другой вариант хиджры, можно создать новые экземпляры HijrahDate с помощью соответствующего HijrahChronology. Кроме того, для преобразования в новую HijrahChronology можно использовать метод withVariant(HijrahChronology).

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

Требования к реализации:
Этот класс является неизменяемым и потокобезопасным.
С версии:
1.8
См. также:
  • Сериализованная форма

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

Модификатор и тип Метод Описание
final ChronoLocalDateTime<HijrahDate> atTime(LocalTime localTime)
Объединяет эту дату со временем, чтобы создать ChronoLocalDateTime.
boolean equals(Object obj)
Сравнивает эту дату с другой датой, включая хронологию.
static HijrahDate from(TemporalAccessor temporal)
Получает HijrahDate исламского календаря Умм аль-Кура из временного объекта.
HijrahChronology getChronology()
Получает хронологию этой даты, то есть календарную систему хиджры.
HijrahEra getEra()
Получает эру, соответствующую этой дате.
long getLong(TemporalField field)
Получает значение указанного поля в виде long.
int hashCode()
Хеш-код этой даты.
boolean isLeapYear()
Проверяет, является ли год високосным согласно правилам календарной системы хиджры.
int lengthOfMonth()
Возвращает продолжительность месяца, представленного этой датой.
int lengthOfYear()
Возвращает продолжительность года, представленного этой датой.
HijrahDate minus(long amountToSubtract, TemporalUnit unit)
Возвращает объект того же типа, что и этот объект, с вычтенным указанным периодом.
HijrahDate minus(TemporalAmount amount)
Возвращает объект того же типа, что и этот объект, с вычтенным значением.
static HijrahDate now()
Получает текущую HijrahDate исламского календаря Умм аль-Кура в часовом поясе по умолчанию.
static HijrahDate now(Clock clock)
Получает текущую HijrahDate исламского календаря Умм аль-Кура по указанным часам.
static HijrahDate now(ZoneId zone)
Получает текущую HijrahDate исламского календаря Умм аль-Кура в указанном часовом поясе.
static HijrahDate of(int prolepticYear, int month, int dayOfMonth)
Получает HijrahDate исламского календаря Умм аль-Кура из полей пролептического года, месяца года и дня месяца.
HijrahDate plus(long amountToAdd, TemporalUnit unit)
Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом.
HijrahDate plus(TemporalAmount amount)
Возвращает объект того же типа, что и этот объект, с добавленным значением.
String toString()
Представляет эту дату в виде String.
ChronoPeriod until(ChronoLocalDate endDate)
Вычисляет период между этой и другой датой в виде ChronoPeriod.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет время до другой даты в единицах указанной единицы измерения.
HijrahDate with(TemporalAdjuster adjuster)
Возвращает скорректированный объект того же типа, что и этот объект, с примененной корректировкой.
HijrahDate with(TemporalField field, long newValue)
Возвращает объект того же типа, что и этот объект, с измененным указанным полем.
HijrahDate withVariant(HijrahChronology chronology)
Возвращает HijrahDate с запрошенной хронологией.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt, либо истечения заданного промежутка реального времени.

Методы, объявленные в интерфейсе ChronoLocalDate

adjustInto, compareTo, format, isAfter, isBefore, isEqual, isSupported, isSupported, query, toEpochDay
Модификатор и тип Метод Описание
default Temporal adjustInto(Temporal temporal)
Корректирует указанный временной объект так, чтобы дата совпадала с датой этого объекта.
default int compareTo(ChronoLocalDate other)
Сравнивает эту дату с другой датой, включая хронологию.
default String format(DateTimeFormatter formatter)
Форматирует эту дату с помощью указанного форматтера.
default boolean isAfter(ChronoLocalDate other)
Проверяет, находится ли эта дата после указанной даты, не учитывая хронологию.
default boolean isBefore(ChronoLocalDate other)
Проверяет, находится ли эта дата до указанной даты, не учитывая хронологию.
default boolean isEqual(ChronoLocalDate other)
Проверяет, совпадает ли эта дата с указанной датой, не учитывая хронологию.
default boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
default boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.
default <R> R query(TemporalQuery<R> query)
Выполняет запрос к этой дате с помощью указанного запроса.
default long toEpochDay()
Преобразует эту дату в количество дней с начала эпохи.

Методы, объявленные в интерфейсе TemporalAccessor

get, range
Модификатор и тип Метод Описание
default int get(TemporalField field)
Получает значение указанного поля в виде int.
default ValueRange range(TemporalField field)
Получает диапазон допустимых значений указанного поля.

Подробное описание методов

now

public static HijrahDate now()
Получает текущую HijrahDate исламского календаря Умм аль-Кура в часовом поясе по умолчанию.

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

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

Возвращает:
текущую дату, полученную с помощью системных часов и часового пояса по умолчанию; не null

now

public static HijrahDate now(ZoneId zone)
Получает текущую HijrahDate исламского календаря Умм аль-Кура в указанном часовом поясе.

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

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

Параметры:
zone — идентификатор часового пояса, который следует использовать; не null
Возвращает:
текущую дату, полученную с помощью системных часов; не null

now

public static HijrahDate now(Clock clock)
Получает текущую HijrahDate исламского календаря Умм аль-Кура из указанных часов.

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

Параметры:
clock — часы, которые следует использовать; не null
Возвращает:
текущую дату; не null
Выбрасывает:
DateTimeException — если не удаётся получить текущую дату

of

public static HijrahDate of(int prolepticYear, int month, int dayOfMonth)
Получает HijrahDate исламского календаря Умм аль-Кура из полей пролептического года, месяца года и дня месяца.

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

Параметры:
prolepticYear — пролептический год хиджры
month — месяц года хиджры от 1 до 12
dayOfMonth — день месяца хиджры от 1 до 30
Возвращает:
дату в календарной системе хиджры; не null
Выбрасывает:
DateTimeException — если значение любого поля выходит за допустимый диапазон или день месяца недопустим для данного месяца и года

from

public static HijrahDate from(TemporalAccessor temporal)
Получает HijrahDate исламского календаря Умм аль-Кура из временного объекта.

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

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

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

Параметры:
temporal — временной объект для преобразования; не null
Возвращает:
дату в календарной системе хиджры; не null
Выбрасывает:
DateTimeException — если не удаётся преобразовать объект в HijrahDate

getChronology

public HijrahChronology getChronology()
Возвращает хронологию этой даты — календарную систему хиджры.

Chronology представляет используемую календарную систему. Эра и другие поля в ChronoField определяются хронологией.

Определено в:
getChronology в интерфейсе ChronoLocalDate
Возвращает:
хронологию хиджры; не null

getEra

public HijrahEra getEra()
Возвращает эру, действующую на эту дату.

В календарной системе хиджры есть одна эра — «AH», определённая в HijrahEra.

Определено в:
getEra в интерфейсе ChronoLocalDate
Возвращает:
эру, действующую на эту дату; не null

lengthOfMonth

public int lengthOfMonth()
Возвращает длину месяца, представленного этой датой.

Возвращает длину месяца в днях. В календарной системе хиджры месяцы имеют длину от 29 до 30 дней.

Определено в:
lengthOfMonth в интерфейсе ChronoLocalDate
Возвращает:
длину месяца в днях

lengthOfYear

public int lengthOfYear()
Возвращает длину года, представленного этой датой.

Возвращает длину года в днях. Год календарной системы хиджры обычно короче года календарной системы ISO.

Определено в:
lengthOfYear в интерфейсе ChronoLocalDate
Возвращает:
длину года в днях

getLong

public long getLong(TemporalField field)
Описание скопировано из интерфейса: TemporalAccessor
Получает значение указанного поля в виде long.

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

Определено в:
getLong в интерфейсе TemporalAccessor
Параметры:
field — поле для получения; не null
Возвращает:
значение поля

with

public HijrahDate with(TemporalField field, long newValue)
Описание скопировано из интерфейса: Temporal
Возвращает объект того же типа, что и этот объект, с изменённым указанным полем.

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

В некоторых случаях изменение поля определено не полностью. Например, если целевой объект — дата, соответствующая 31 января, то изменение месяца на февраль неоднозначно. В таких случаях поле отвечает за определение результата. Обычно выбирается предыдущая допустимая дата — в данном примере последний допустимый день февраля.

Определено в:
with в интерфейсе ChronoLocalDate
Определено в:
with в интерфейсе Temporal
Параметры:
field — поле, которое нужно установить в результате; не null
newValue — новое значение поля в результате
Возвращает:
объект того же типа с установленным указанным полем; не null

with

public HijrahDate with(TemporalAdjuster adjuster)
Возвращает скорректированный объект того же типа, что и этот объект.

Корректирует эту дату и время согласно правилам указанного средства коррекции. Простое средство коррекции может просто установить одно из полей, например поле года. Более сложное средство коррекции может установить дату на последний день месяца. Набор распространённых коррекций представлен в TemporalAdjusters. Среди них — поиск «последнего дня месяца» и «следующей среды». Средство коррекции отвечает за обработку особых случаев, например разной длины месяцев и високосных лет.

Ниже приведены примеры кода, показывающие, как и зачем используется этот метод:

 date = date.with(Month.JULY);        // most key classes implement TemporalAdjuster
 date = date.with(lastDayOfMonth());  // static import from Adjusters
 date = date.with(next(WEDNESDAY));   // static import from Adjusters and DayOfWeek
Определено в:
with в интерфейсе ChronoLocalDate
Определено в:
with в интерфейсе Temporal
Параметры:
adjuster — используемое средство коррекции; не null
Возвращает:
объект того же типа с применённой указанной коррекцией; не null
Выбрасывает:
DateTimeException — если не удаётся выполнить коррекцию. Например, если средство коррекции требует хронологию ISO
ArithmeticException — при числовом переполнении

withVariant

public HijrahDate withVariant(HijrahChronology chronology)
Возвращает HijrahDate с запрошенной хронологией.

Год, месяц и день проверяются на соответствие новой запрошенной HijrahChronology. Если в этой хронологии месяц короче, день уменьшается до последнего дня месяца.

Параметры:
chronology — новая HijrahChonology; не null
Возвращает:
HijrahDate с запрошенной HijrahChronology; не null

plus

public HijrahDate plus(TemporalAmount amount)
Возвращает объект того же типа, что и этот объект, с добавленной величиной.

Корректирует это временное значение, добавляя величину согласно её правилам. Обычно величина — это Period, но это может быть любой другой тип, реализующий интерфейс TemporalAmount, например Duration.

Ниже приведены примеры кода, показывающие, как и зачем используется этот метод:

 date = date.plus(period);                // add a Period instance
 date = date.plus(duration);              // add a Duration instance
 date = date.plus(workingDays(6));        // example user-written workingDays method

Обратите внимание: вызов plus с последующим вызовом minus не гарантирует возврат той же даты и времени.

Определено в:
plus в интерфейсе ChronoLocalDate
Определено в:
plus в интерфейсе Temporal
Параметры:
amount — добавляемая величина; не null
Возвращает:
объект того же типа с применённой указанной коррекцией; не null
Выбрасывает:
DateTimeException — если сложение невозможно выполнить
ArithmeticException — при числовом переполнении

minus

public HijrahDate minus(TemporalAmount amount)
Возвращает объект того же типа, что и этот объект, с вычтенной величиной.

Корректирует это временное значение, вычитая величину согласно её правилам. Обычно величина — это Period, но это может быть любой другой тип, реализующий интерфейс TemporalAmount, например Duration.

Ниже приведены примеры кода, показывающие, как и зачем используется этот метод:

 date = date.minus(period);               // subtract a Period instance
 date = date.minus(duration);             // subtract a Duration instance
 date = date.minus(workingDays(6));       // example user-written workingDays method

Обратите внимание: вызов plus с последующим вызовом minus не гарантирует возврат той же даты и времени.

Определено в:
minus в интерфейсе ChronoLocalDate
Определено в:
minus в интерфейсе Temporal
Параметры:
amount — вычитаемая величина; не null
Возвращает:
объект того же типа с применённой указанной коррекцией; не null
Выбрасывает:
DateTimeException — если вычитание невозможно выполнить
ArithmeticException — при числовом переполнении

isLeapYear

public boolean isLeapYear()
Проверяет, является ли год високосным согласно правилам календарной системы хиджры.
Определено в:
isLeapYear в интерфейсе ChronoLocalDate
Возвращает:
true, если эта дата приходится на високосный год

plus

public HijrahDate plus(long amountToAdd, TemporalUnit unit)
Описание скопировано из интерфейса: Temporal
Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом.

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

В некоторых случаях изменение поля определено не полностью. Например, если целевой объект — дата, соответствующая 31 января, добавление одного месяца неоднозначно. В таких случаях поле отвечает за определение результата. Обычно выбирается предыдущая допустимая дата — в данном примере последний допустимый день февраля.

Определено в:
plus в интерфейсе ChronoLocalDate
Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd — количество единиц указанной величины для добавления; может быть отрицательным
unit — единица измерения добавляемой величины; не null
Возвращает:
объект того же типа с добавленным указанным периодом; не null

minus

public HijrahDate minus(long amountToSubtract, TemporalUnit unit)
Описание скопировано из интерфейса: Temporal
Возвращает объект того же типа, что и этот объект, с вычтенным указанным периодом.

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

В некоторых случаях изменение поля определено не полностью. Например, если целевой объект — дата, соответствующая 31 марта, вычитание одного месяца неоднозначно. В таких случаях поле отвечает за определение результата. Обычно выбирается предыдущая допустимая дата — в данном примере последний допустимый день февраля.

Определено в:
minus в интерфейсе ChronoLocalDate
Определено в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract — количество единиц указанной величины для вычитания; может быть отрицательным
unit — единица измерения вычитаемой величины; не null
Возвращает:
объект того же типа с вычтенным указанным периодом; не null

atTime

public final ChronoLocalDateTime<HijrahDate> atTime(LocalTime localTime)
Описание скопировано из интерфейса: ChronoLocalDate
Объединяет эту дату со временем, чтобы создать ChronoLocalDateTime.

Возвращает ChronoLocalDateTime, образованные этой датой и указанным временем. Допустимы все возможные сочетания даты и времени.

Определено в:
atTime в интерфейсе ChronoLocalDate
Параметры:
localTime — используемое местное время; не null
Возвращает:
местные дату и время, образованные этой датой и указанным временем; не null

until

public ChronoPeriod until(ChronoLocalDate endDate)
Описание скопировано из интерфейса: ChronoLocalDate
Вычисляет период между этой датой и другой датой в виде ChronoPeriod.

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

Начальная и конечная точки — this и указанная дата. Результат будет отрицательным, если конечная дата предшествует начальной. Знак будет одинаковым для года, месяца и дня.

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

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

Определено в:
until в интерфейсе ChronoLocalDate
Параметры:
endDate — конечная дата, не включаемая в период; может относиться к любой хронологии; не null
Возвращает:
период между этой датой и конечной датой; не null

equals

public boolean equals(Object obj)
Сравнивает эту дату с другой датой, включая хронологию.

Сравнивает эту HijrahDate с другой датой, проверяя их совпадение.

Сравниваются только объекты типа HijrahDate; для объектов других типов возвращается false. Для сравнения дат двух экземпляров TemporalAccessor, в том числе дат из разных хронологий, используйте ChronoField.EPOCH_DAY в качестве компаратора.

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

hashCode

public int hashCode()
Хеш-код этой даты.
Определено в:
hashCode в интерфейсе ChronoLocalDate
Возвращает:
подходящий хеш-код, основанный только на хронологии и дате
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

until

public long until(Temporal endExclusive, TemporalUnit unit)
Описание скопировано из интерфейса: ChronoLocalDate
Вычисляет промежуток времени до другой даты в указанной единице измерения.

Вычисляет промежуток времени между двумя объектами ChronoLocalDate в одной TemporalUnit. Начальная и конечная точки — this и указанная дата. Результат будет отрицательным, если конечная дата предшествует начальной. Переданная этому методу величина Temporal преобразуется в ChronoLocalDate с помощью Chronology.date(TemporalAccessor). В результате вычисления возвращается целое число, представляющее количество полных единиц между двумя датами. Например, количество дней между двумя датами можно вычислить с помощью startDate.until(endDate, DAYS).

Этот метод можно использовать двумя эквивалентными способами. Первый — вызвать данный метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):

  // these two lines are equivalent
  amount = start.until(end, MONTHS);
  amount = MONTHS.between(start, end);
Выбор следует делать исходя из того, какой вариант делает код более понятным.

Для ChronoUnit вычисление реализовано в этом методе. Все реализации должны поддерживать единицы DAYS, WEEKS, MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Для других значений ChronoUnit будет выброшено исключение.

Если единица не является ChronoUnit, результат этого метода получается вызовом TemporalUnit.between(Temporal, Temporal) с передачей this в качестве первого аргумента, а преобразованного входного временного объекта — в качестве второго аргумента.

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

Определено в:
until в интерфейсе ChronoLocalDate
Определено в:
until в интерфейсе Temporal
Параметры:
endExclusive — конечная дата, не включаемая в период; преобразуется в ChronoLocalDate той же хронологии; не null
unit — единица измерения промежутка времени; не null
Возвращает:
промежуток времени между этой датой и конечной датой

toString

public String toString()
Описание скопировано из интерфейса: ChronoLocalDate
Выводит эту дату в виде String.

Вывод будет содержать полную местную дату.

Определено в:
toString в интерфейсе ChronoLocalDate
Переопределяет:
toString в классе Object
Возвращает:
отформатированную дату; не null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, обзоры концепций, определения терминов, способы обхода ограничений и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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