Класс HijrahDate
- Все реализованные интерфейсы:
-
Serializable,Comparable<ChronoLocalDate>,ChronoLocalDate,Temporal,TemporalAccessor,TemporalAdjuster
public final class HijrahDate extends Object implements ChronoLocalDate, Serializable
Эта дата работает с одной из нескольких разновидностей календаря Хиджры.
Календарь Хиджры имеет другое общее количество дней в году, чем григорианский календарь, а продолжительность каждого месяца основана на периоде полного оборота Луны вокруг Земли (между последовательными новолуниями). Обратитесь к HijrahChronology для получения подробностей о поддерживаемых вариантах.
Каждый HijrahDate создается, связанный с конкретным HijrahChronology. Та же хронология передается каждому HijrahDate, вычисленному из даты. Чтобы использовать другой вариант Хиджры, его HijrahChronology можно использовать для создания новых экземпляров HijrahDate. В качестве альтернативы, метод withVariant(java.time.chrono.HijrahChronology) можно использовать для преобразования в новую HijrahChronology.
Это класc значений; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе могут возникнуть непредсказуемые последствия. Например, в будущей версии синхронизация может завершиться неудачей. Для сравнений следует использовать метод 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 с запрошенной хронологией. |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.time.chrono.ChronoLocalDate
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isSupported, isSupported, query, toEpochDay, toString, until
Методы, объявленные в интерфейсе java.time.temporal.TemporalAccessor
get, range
Подробное описание методов
now
public static HijrahDate now()
Эта функция обращается к system clock в часовом поясе по умолчанию для получения текущей даты.
Использование этого метода предотвращает возможность использования альтернального таймера для тестирования, так как таймер жестко задан.
- Возвращает:
- текущую дату, используя системный таймер и часовой пояс по умолчанию, не null
now
public static HijrahDate now(ZoneId zone)
Эта функция обращается к system clock для получения текущей даты. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию.
Использование этого метода предотвращает возможность использования альтернативного таймера для тестирования, так как таймер жестко задан.
- Параметры:
-
zone- идентификатор часового пояса для использования, не null - Возвращает:
- текущую дату, используя системный таймер, не null
now
public static HijrahDate now(Clock clock)
Эта функция обращается к указанному таймеру для получения текущей даты - сегодняшней. Использование этого метода позволяет использовать альтернативный таймер для тестирования. Альтернативный таймер может быть введён с помощью инъекции зависимостей.
- Параметры:
-
clock- используемый таймер, не null - Возвращает:
- текущую дату, не null
- Исключения:
-
DateTimeException- если текущая дата не может быть получена
of
public static HijrahDate of(int prolepticYear, int month, int dayOfMonth)
Возвращает дату с указанными полями. День должен быть действительным для года и месяца, в противном случае будет выброшено исключение.
- Параметры:
-
prolepticYear- пролептический год Хиджры -
month- месяц Хиджры, от 1 до 12 -
dayOfMonth- день Хиджры, от 1 до 30 - Возвращает:
- дату в системе календаря Хиджры, не null
- Исключения:
-
DateTimeException- если значение любого поля выходит за пределы допустимого диапазона или если день месяца недействителен для месяца и года
from
public static HijrahDate from(TemporalAccessor temporal)
Получает дату в системе календаря Хиджры на основе указанного временного объекта. 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()
Возвращает длительность года в днях. Год исламского календаря Хиджры обычно короче, чем в григорианском календаре.
- Определено в:
-
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 с запрошенной хронологией. Год, месяц и день проверяются по отношению к новой запрошенной хронологии Хиджры. Если хронология имеет более короткую длину месяца для месяца, день уменьшается до последнего дня месяца.
- Параметры:
-
chronology- новая хронология Хиджры, не null - Возвращает:
- HijrahDate с запрошенной хронологией Хиджры, не 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/chrono/HijrahDate.html