Класс 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.
Это класс значение; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе может произойти непредсказуемое поведение. Например, в будущей версии синхронизация может завершиться неудачно. Для сравнения следует использовать метод 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() |
Возвращает строковое представление объекта. |
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()
HijrahDate исламского календаря Umm Al-Qura в часовом поясе по умолчанию. Для получения текущей даты будет запрошен system clock в часовом поясе по умолчанию.
Использование этого метода запрещает использование альтернарного часового механизма для тестирования, так как часы жестко запрограммированы.
- Возвращает:
- текущую дату с использованием системных часов и часового пояса по умолчанию, не null
now
public static HijrahDate now(ZoneId zone)
HijrahDate исламского календаря Umm Al-Qura в указанном часовом поясе. Для получения текущей даты будет запрошен system clock. Указание часового пояса исключает зависимость от часового пояса по умолчанию.
Использование этого метода запрещает использование альтернарного часового механизма для тестирования, так как часы жестко запрограммированы.
- Параметры:
-
zone- идентификатор часового пояса для использования, не null - Возвращает:
- текущую дату с использованием системных часов, не null
now
public static HijrahDate now(Clock clock)
HijrahDate исламского календаря Umm Al-Qura из указанных часов. Для получения текущей даты - сегодняшней даты - будет запрошен указанный часовой механизм. Использование этого метода позволяет использовать альтернарный часовой механизм для тестирования. Альтернативный часовой механизм может быть введен с помощью инъекции зависимостей.
- Параметры:
-
clock- используемые часы, не null - Возвращает:
- текущую дату, не null
- Издает:
-
DateTimeException- если текущая дата не может быть получена
of
public static HijrahDate of(int prolepticYear, int month, int dayOfMonth)
HijrahDate исламского календаря Umm Al-Qura из пролептического года, месяца и дня месяца. Возвращает дату HijrahDate с указанными полями. День должен быть действительным для года и месяца, в противном случае будет выброшено исключение.
- Параметры:
-
prolepticYear- пролептический год хиджры -
month- месяц хиджры, от 1 до 12 -
dayOfMonth- день хиджры, от 1 до 30 - Возвращает:
- дата в исламском календаре, не null
- Издает:
-
DateTimeException- если значение любого поля находится вне диапазона или если день месяца недействителен для месяца-года
from
public static HijrahDate from(TemporalAccessor temporal)
HijrahDate исламского календаря Umm Al-Qura из временного объекта. Получает дату в исламском календаре на основе указанного временного объекта. 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)
ChronoLocalDate Возвращает новый объект, основанный на этом объекте, со значением указанного поля, измененного. Например, для 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 не гарантирует возврат той же даты и времени.
- Specified by:
-
plusв интерфейсеChronoLocalDate - Specified by:
-
plusв интерфейсеTemporal - Parameters:
-
amount- добавляемое значение, не null - Returns:
- объект того же типа с выполненной указанной корректировкой, не null
- Throws:
-
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 не гарантирует возврат той же даты и времени.
- Specified by:
-
minusв интерфейсеChronoLocalDate - Specified by:
-
minusв интерфейсеTemporal - Parameters:
-
amount- вычитаемое значение, не null - Returns:
- объект того же типа с выполненной указанной корректировкой, не null
- Throws:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если происходит переполнение числовых значений
isLeapYear
public boolean isLeapYear()
- Specified by:
-
isLeapYearв интерфейсеChronoLocalDate - Returns:
- true, если эта дата находится в високосном году
plus
public HijrahDate plus(long amountToAdd, TemporalUnit unit)
ChronoLocalDate Этот метод возвращает новый объект, основанный на этом объекте, с добавленным указанным периодом. Например, на LocalDate, это можно использовать для добавления количества лет, месяцев или дней. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях изменение поля не полностью определено. Например, если целевой объект является датой, представляющей 31 января, то добавление одного месяца будет неясно. В таких случаях поле отвечает за разрешение результата. Обычно оно выберет предыдущую допустимую дату, которая в данном примере будет последним допустимым днем февраля.
- Specified by:
-
plusв интерфейсеChronoLocalDate - Specified by:
-
plusв интерфейсеTemporal - Parameters:
-
amountToAdd- количество указанной единицы для добавления, может быть отрицательным -
unit- единица количества для добавления, не null - Returns:
- объект того же типа с добавленным указанным периодом, не null
minus
public HijrahDate minus(long amountToSubtract, TemporalUnit unit)
ChronoLocalDate Этот метод возвращает новый объект, основанный на этом объекте, с вычтенным указанным периодом. Например, на LocalDate, это можно использовать для вычитания количества лет, месяцев или дней. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях изменение поля не полностью определено. Например, если целевой объект является датой, представляющей 31 марта, то вычитание одного месяца будет неясно. В таких случаях поле отвечает за разрешение результата. Обычно оно выберет предыдущую допустимую дату, которая в данном примере будет последним допустимым днем февраля.
- Specified by:
-
minusв интерфейсеChronoLocalDate - Specified by:
-
minusв интерфейсеTemporal - Parameters:
-
amountToSubtract- количество указанной единицы для вычитания, может быть отрицательным -
unit- единица количества для вычитания, не null - Returns:
- объект того же типа с вычтенным указанным периодом, не null
atTime
public final ChronoLocalDateTime<HijrahDate> atTime(LocalTime localTime)
ChronoLocalDateChronoLocalDateTime. Это возвращает ChronoLocalDateTime, сформированную из этой даты в указанное время. Все возможные комбинации даты и времени допустимы.
- Specified by:
-
atTimeв интерфейсеChronoLocalDate - Parameters:
-
localTime- используемое местное время, не null - Returns:
- локальное дата-время, сформированное из этой даты и указанного времени, не null
until
public ChronoPeriod until(ChronoLocalDate endDate)
ChronoLocalDateChronoPeriod. Это вычисляет период между двумя датами. Все предоставленные хронологии вычисляют период, используя годы, месяцы и дни, однако API ChronoPeriod позволяет представлять период с использованием других единиц.
Точки начала и конца — this и указанная дата. Результат будет отрицательным, если конец находится до начала. Отрицательный знак будет одинаковым для года, месяца и дня.
Вычисление выполняется с использованием хронологии этой даты. При необходимости дата ввода будет преобразована в соответствие.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Specified by:
-
untilв интерфейсеChronoLocalDate - Parameters:
-
endDate- конечная дата, исключая, которая может находиться в любой хронологии, не null - Returns:
- период между этой датой и конечной датой, не null
equals
public boolean equals(Object obj)
Сравнивает эту HijrahDate с другой, обеспечивая, что дата такая же.
Сравниваются только объекты типа HijrahDate, другие типы возвращают false. Чтобы сравнить даты двух экземпляров TemporalAccessor экземпляров, включая даты в двух разных хронологиях, используйте ChronoField.EPOCH_DAY в качестве компаратора.
- Specified by:
-
equalsв интерфейсеChronoLocalDate - Parameters:
-
obj- проверяемый объект, null возвращает false - Returns:
- true, если это равно другой дате и хронологии равны
- See Also:
hashCode
public int hashCode()
- Specified by:
-
hashCodeв интерфейсеChronoLocalDate - Returns:
- подходящий хеш-код, основанный только на хронологии и дате
- See Also:
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()
Object- Указано в:
-
toStringв интерфейсеChronoLocalDate - Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта.
© 1993, 2023, 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/21/docs/api/java.base/java/time/chrono/HijrahDate.html