Класс 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, вычисленному из даты. Чтобы использовать другой вариант Хиджры, его HijrahChronology можно использовать для создания новых экземпляров HijrahDate. В качестве альтернативы, можно использовать метод withVariant(java.time.chrono.HijrahChronology) для преобразования в новую HijrahChronology.
Это класс значение-ориентированный; использование операций, чувствительных к идентичности (включая сравнение по ссылке (==), хэш-код по идентичности или синхронизацию) на экземплярах HijrahDate может привести к непредсказуемым результатам и следует избегать. Для сравнения следует использовать метод equals
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
- Сериализованная форма
Методы
| Модификатор и тип | Метод и описание |
|---|---|
ChronoLocalDateTime<HijrahDate> |
atTime(LocalTime localTime) Объединяет эту дату с временем, чтобы создать |
boolean |
equals(Object obj) Сравнивает эту дату с другой датой, включая хронологию. |
static HijrahDate |
from(TemporalAccessor temporal) Получает |
HijrahChronology |
getChronology() Получает хронологию этой даты, которая является системой календаря Хиджры. |
HijrahEra |
getEra() Получает эру, применимую к этой дате. |
long |
getLong(TemporalField field) Получает значение указанного поля как |
int |
hashCode() Хэш-код для этой даты. |
boolean |
isLeapYear() Проверяет, является ли год високосным годом в соответствии с правилами системы календаря Хиджры. |
int |
lengthOfMonth() Возвращает длительность месяца, представленного этой датой. |
int |
lengthOfYear() Возвращает длительность года, представленного этой датой. |
HijrahDate |
minus(long amountToSubtract,
TemporalUnit unit) Возвращает объект того же типа, что и этот объект, со вычтенным указанным периодом. |
HijrahDate |
minus(TemporalAmount amount) Возвращает объект того же типа, что и этот объект, с вычтенным указанным значением. |
static HijrahDate |
now() Получает текущую |
static HijrahDate |
now(Clock clock) Получает текущую |
static HijrahDate |
now(ZoneId zone) Получает текущую |
static HijrahDate |
of(int prolepticYear,
int month,
int dayOfMonth) Получает |
HijrahDate |
plus(long amountToAdd,
TemporalUnit unit) Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом. |
HijrahDate |
plus(TemporalAmount amount) Возвращает объект того же типа, что и этот объект, с добавленным указанным значением. |
ValueRange |
range(TemporalField field) Получает диапазон допустимых значений для указанного поля. |
long |
toEpochDay() Преобразует эту дату в эпохальный день. |
String |
toString() Возвращает строковое представление объекта. |
ChronoPeriod |
until(ChronoLocalDate endDate) Вычисляет период между этой датой и другой датой как |
long |
until(Temporal endExclusive,
TemporalUnit unit) Вычисляет величину времени до другой даты в терминах указанной единицы. |
HijrahDate |
with(TemporalAdjuster adjuster) Возвращает скорректированный объект того же типа, что и этот объект, с произведённой корректировкой. |
HijrahDate |
with(TemporalField field,
long newValue) Возвращает объект того же типа, что и этот объект, с изменённым указанным полем. |
HijrahDate |
withVariant(HijrahChronology chronology) Возвращает |
Методы, унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы, унаследованные от интерфейса java.time.chrono.ChronoLocalDate
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isSupported, isSupported, query, timeLineOrder, toString, until Методы, унаследованные от интерфейса java.time.temporal.TemporalAccessor
get Методы
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.
- Определяет:
-
fromв интерфейсеChronoLocalDate - Параметры:
-
temporal— временной объект для преобразования, не null - Возвращает:
- дату в исламском календарной системе, не null
- Выбрасывает:
-
DateTimeException— если преобразование вHijrahDateневозможно - См. также:
Chronology.date(TemporalAccessor)
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 - Возвращает:
- длительность года в днях
range
public ValueRange range(TemporalField field)
Описание скопировано из интерфейса: TemporalAccessor
Получает диапазон допустимых значений для указанного поля.
Все поля могут быть выражены как целочисленное значение long. Этот метод возвращает объект, описывающий допустимый диапазон для этого значения. Значение этого временного объекта используется для повышения точности возвращаемого диапазона. Если объект даты и времени не может вернуть диапазон, потому что поле не поддерживается или по какой-либо другой причине, будет выброшено исключение.
Обратите внимание, что результат описывает только минимальное и максимальное допустимые значения, и не стоит делать слишком много выводов из них. Например, могут быть значения в диапазоне, которые некорректны для поля.
- Определяет:
-
rangeв интерфейсеTemporalAccessor - Параметры:
-
field— поле для запроса диапазона, не null - Возвращает:
- диапазон допустимых значений для поля, не null
getLong
public long getLong(TemporalField field)
Описание скопировано из интерфейса: TemporalAccessor
Возвращает значение указанного поля как long.
Это запрашивает значение указанного поля у даты и времени. Возвращаемое значение может быть вне допустимого диапазона значений для поля. Если объект даты и времени не может вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, будет выброшено исключение.
- Определяет:
-
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 не гарантирует возвращение той же даты и времени.
- Определено в:
-
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- если произошел переполнение числовых значений
toEpochDay
public long toEpochDay()
Описание скопировано из интерфейса: ChronoLocalDate
Преобразует эту дату в Эпоху дня.
Epoch Day count — это простая возрастающая счётчик дней, где день 0 — 1970-01-01 (ISO). Это определение одинаково для всех хронологий, что позволяет выполнить преобразование.
Эта реализация по умолчанию обращается к полю EPOCH_DAY.
- Определено в:
-
toEpochDayв интерфейсеChronoLocalDate - Возвращает:
- Эпоху дня, эквивалентную этой дате
isLeapYear
public boolean isLeapYear()
Проверяет, является ли год високосным, согласно правилам календаря Хиджры.
- Определено в:
-
isLeapYearв интерфейсеChronoLocalDate - Возвращает:
- true, если эта дата находится в високосном году
plus
public HijrahDate plus(long amountToAdd,
TemporalUnit unit) Описание скопировано из интерфейса: ChronoLocalDate
Возвращает объект того же типа, что и этот объект, с добавлением указанного периода.
Этот метод возвращает новый объект, основанный на этом, с добавленным указанным периодом. Например, в LocalDate, это можно использовать для добавления количества лет, месяцев или дней. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях изменение поля не полностью определено. Например, если целевой объект представляет дату 31 января, то добавление одного месяца было бы неясным. В таких случаях поле отвечает за разрешение результата. Обычно оно выбирает предыдущую допустимую дату, что в данном примере будет последним допустимым днём февраля.
- Определено в:
-
plusв интерфейсеChronoLocalDate - Определено в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество указанного раздела для добавления, может быть отрицательным -
unit- единица количества для добавления, не null - Возвращает:
- объект того же типа с добавленным указанным периодом, не null
minus
public HijrahDate minus(long amountToSubtract,
TemporalUnit unit) Описание скопировано из интерфейса: ChronoLocalDate
Возвращает объект того же типа, что и этот объект, с вычитанием указанного периода.
Этот метод возвращает новый объект, основанный на этом, с вычтенным указанным периодом. Например, в 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(java.lang.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()
Описание скопировано из класса: Object
Возвращает строковое представление объекта. В общем случае метод toString возвращает строку, которая "текстуально представляет" этот объект. Результат должен быть кратким, но информативным представлением, удобным для чтения человеком. Рекомендуется, чтобы все подклассы переопределяли этот метод.
Метод toString для класса Object возвращает строку, состоящую из имени класса, к которому относится объект, символа "@" и неозначенного шестнадцатеричного представления хэш-кода объекта. Другими словами, этот метод возвращает строку, равную значению:
getClass().getName() + '@' + Integer.toHexString(hashCode())
- Определено в:
-
toStringв интерфейсеChronoLocalDate - Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта.
© 1993, 2020, 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.