Класс 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 с запрошенной хронологией. |
Методы, объявленные в интерфейсе 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)
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/chrono/HijrahDate.html