Класс 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
- См. также:
- Сериализованная форма
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | equals(Object obj) | Сравнивает эту дату с другой датой, включая хронологию. |
static HijrahDate | from(TemporalAccessor temporal) | Получает |
HijrahChronology | getChronology() | Получает хронологию этой даты, которая представляет собой систему календаря Хиджры. |
HijrahEra | getEra() | Получает эру, применимую в этой дате. |
int | hashCode() | Хэш-код для этой даты. |
boolean | isLeapYear() | Проверяет, является ли год високосным годом согласно правилам системы календаря Хиджры. |
int | lengthOfMonth() | Возвращает длительность месяца, представленного этой датой. |
int | lengthOfYear() | Возвращает длительность года, представленного этой датой. |
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(TemporalAmount amount) | Возвращает объект того же типа, что и этот объект, с добавленным значением. |
String | toString() | Возвращает строковое представление объекта. |
long | until(Temporal endExclusive,
TemporalUnit unit) | Вычисляет время до другой даты в указанных единицах измерения. |
HijrahDate | with(TemporalAdjuster adjuster) | Возвращает скорректированный объект того же типа, что и этот объект, с произведённой корректировкой. |
HijrahDate | withVariant(HijrahChronology chronology) | Возвращает |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы, объявленные в интерфейсе java.time.chrono.ChronoLocalDate
adjustInto, atTime, compareTo, format, isAfter, isBefore, isEqual, isSupported, isSupported, minus, plus, query, toEpochDay, toString, until, until, with Методы, объявленные в интерфейсе java.time.temporal.TemporalAccessor
get, getLong, 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 - См. также:
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 - Возвращает:
- длину года в днях
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, если эта дата находится в високосный год
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/chrono/HijrahDate.html