Spec-Zone.ru › OpenJDK 25

Класс 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

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

adjustInto, compareTo, format, isAfter, isBefore, isEqual, isSupported, isSupported, query, toEpochDay, toString, until

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

get, range

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/chrono/HijrahDate.html

Spec-Zone.ru

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