Класс 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<HijrahDate> |
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 из временного объекта. Этот метод получает дату в системе календаря хиджры на основе указанного временного объекта. Временной объект представляет собой произвольный набор информации о дате и времени, которую этот фабричный метод преобразует в экземпляр HijrahDate.
Преобразование обычно использует поле EPOCH_DAY, которое стандартизировано для всех систем календарей.
Этот метод соответствует подписи функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса через ссылку на метод, HijrahDate::from.
- Параметры:
-
temporal- временной объект для преобразования, не null - Возвращает:
- дату в системе календаря хиджры, не null
- Исключения:
-
DateTimeException- если невозможно преобразовать вHijrahDate - См. также:
getChronology
public HijrahChronology getChronology()
Хронология представляет систему календаря, используемого в текущий момент. Эра и другие поля в 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)
ChronoLocalDateВозвращает новый объект, основанный на этом, со значением указанного поля, изменённым. Например, в дате это может быть год, месяц или день. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях изменение поля не полностью определено. Например, если целевой объект представляет собой дату 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 - Возвращает:
- дата хиджры с запрошенной хронологией хиджры, не 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, 2021, 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/17/docs/api/java.base/java/time/chrono/HijrahDate.html