Класс 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 |
atTime |
Объединяет эту дату со временем, чтобы создать ChronoLocalDateTime. |
boolean |
equals |
Сравнивает эту дату с другой датой, включая хронологию. |
static HijrahDate |
from |
Получает HijrahDate исламского календаря Умм аль-Кура из временного объекта. |
HijrahChronology |
getChronology() |
Получает хронологию этой даты, то есть календарную систему хиджры. |
HijrahEra |
getEra() |
Получает эру, соответствующую этой дате. |
long |
getLong |
Получает значение указанного поля в виде long. |
int |
hashCode() |
Хеш-код этой даты. |
boolean |
isLeapYear() |
Проверяет, является ли год високосным согласно правилам календарной системы хиджры. |
int |
lengthOfMonth() |
Возвращает продолжительность месяца, представленного этой датой. |
int |
lengthOfYear() |
Возвращает продолжительность года, представленного этой датой. |
HijrahDate |
minus |
Возвращает объект того же типа, что и этот объект, с вычтенным указанным периодом. |
HijrahDate |
minus |
Возвращает объект того же типа, что и этот объект, с вычтенным значением. |
static HijrahDate |
now() |
Получает текущую HijrahDate исламского календаря Умм аль-Кура в часовом поясе по умолчанию. |
static HijrahDate |
now |
Получает текущую HijrahDate исламского календаря Умм аль-Кура по указанным часам. |
static HijrahDate |
now |
Получает текущую HijrahDate исламского календаря Умм аль-Кура в указанном часовом поясе. |
static HijrahDate |
of |
Получает HijrahDate исламского календаря Умм аль-Кура из полей пролептического года, месяца года и дня месяца. |
HijrahDate |
plus |
Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом. |
HijrahDate |
plus |
Возвращает объект того же типа, что и этот объект, с добавленным значением. |
String |
toString() |
Представляет эту дату в виде String. |
ChronoPeriod |
until |
Вычисляет период между этой и другой датой в виде ChronoPeriod. |
long |
until |
Вычисляет время до другой даты в единицах указанной единицы измерения. |
HijrahDate |
with |
Возвращает скорректированный объект того же типа, что и этот объект, с примененной корректировкой. |
HijrahDate |
with |
Возвращает объект того же типа, что и этот объект, с измененным указанным полем. |
HijrahDate |
withVariant |
Возвращает 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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt, либо истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt, либо истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе ChronoLocalDate
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isSupported, isSupported, query, toEpochDay | Модификатор и тип | Метод | Описание |
|---|---|---|
default Temporal |
adjustInto |
Корректирует указанный временной объект так, чтобы дата совпадала с датой этого объекта. |
default int |
compareTo |
Сравнивает эту дату с другой датой, включая хронологию. |
default String |
format |
Форматирует эту дату с помощью указанного форматтера. |
default boolean |
isAfter |
Проверяет, находится ли эта дата после указанной даты, не учитывая хронологию. |
default boolean |
isBefore |
Проверяет, находится ли эта дата до указанной даты, не учитывая хронологию. |
default boolean |
isEqual |
Проверяет, совпадает ли эта дата с указанной датой, не учитывая хронологию. |
default boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
default boolean |
isSupported |
Проверяет, поддерживается ли указанная единица измерения. |
default <R> R |
query |
Выполняет запрос к этой дате с помощью указанного запроса. |
default long |
toEpochDay() |
Преобразует эту дату в количество дней с начала эпохи. |
Методы, объявленные в интерфейсе TemporalAccessor
get, range | Модификатор и тип | Метод | Описание |
|---|---|---|
default int |
get |
Получает значение указанного поля в виде int. |
default ValueRange |
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)
TemporalAccessorlong. Выполняет запрос к дате и времени для получения значения указанного поля. Возвращаемое значение может выходить за допустимый диапазон значений поля. Если дата и время не могут вернуть значение, поскольку поле не поддерживается или по какой-либо другой причине, будет выброшено исключение.
- Определено в:
-
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)
ChronoLocalDateChronoLocalDateTime. Возвращает ChronoLocalDateTime, образованные этой датой и указанным временем. Допустимы все возможные сочетания даты и времени.
- Определено в:
-
atTimeв интерфейсеChronoLocalDate - Параметры:
-
localTime— используемое местное время; не null - Возвращает:
- местные дату и время, образованные этой датой и указанным временем; не null
until
public ChronoPeriod until(ChronoLocalDate endDate)
ChronoLocalDateChronoPeriod. Вычисляет период между двумя датами. Все предоставляемые хронологии вычисляют период в годах, месяцах и днях, однако 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, если эта дата равна другой дате и хронологии совпадают
- См. также:
hashCode
public int hashCode()
- Определено в:
-
hashCodeв интерфейсеChronoLocalDate - Возвращает:
- подходящий хеш-код, основанный только на хронологии и дате
- См. также:
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()
ChronoLocalDateString. Вывод будет содержать полную местную дату.
- Определено в:
-
toStringв интерфейсеChronoLocalDate - Переопределяет:
-
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.