Интерфейс ChronoPeriod
- Все суперинтерфейсы:
- TemporalAmount
- Все известные реализующие классы:
- Period
public interface ChronoPeriod extends TemporalAmount
Промежуток времени, основанный на датах, например, '3 года, 4 месяца и 5 дней' в произвольной хронологии, предназначенный для использования в сложных сценариях глобализации.
Этот интерфейс моделирует временной интервал, основанный на датах, в системе календаря. Хотя большинство систем календаря используют годы, месяцы и дни, некоторые из них не используют. Поэтому этот интерфейс работает только с набором поддерживаемых единиц, определенных Chronology. Набор поддерживаемых единиц фиксирован для данной хронологии. Значение поддерживаемой единицы может быть равно нулю.
Промежуток времени моделируется как направленное значение времени, что означает, что отдельные части промежутка времени могут быть отрицательными.
- Требования к реализации:
- Этот интерфейс должен быть реализован с осторожностью, чтобы обеспечить корректную работу других классов. Все реализуемые классы, которые могут быть созданы, должны быть final, неизменяемыми и потокобезопасными. Подклассы должны быть Serializable, где это возможно.
- С:
- 1.8
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Temporal |
addTo(Temporal temporal) Добавляет этот временной промежуток к указанному временному объекту. |
static ChronoPeriod |
between(ChronoLocalDate startDateInclusive,
ChronoLocalDate endDateExclusive) Получает |
boolean |
equals(Object obj) Проверяет, равен ли этот временной промежуток другому промежутку времени, включая хронологию. |
long |
get(TemporalUnit unit) Получает значение запрошенной единицы. |
Chronology |
getChronology() Получает хронологию, которая определяет значение поддерживаемых единиц. |
List<TemporalUnit> |
getUnits() Получает набор единиц, поддерживаемых этим временным промежутком. |
int |
hashCode() Хэш-код для этого временного промежутка. |
default boolean |
isNegative() Проверяет, является ли какой-либо из поддерживаемых единиц этого временного промежутка отрицательным. |
default boolean |
isZero() Проверяет, равны ли все поддерживаемые единицы этого временного промежутка нулю. |
ChronoPeriod |
minus(TemporalAmount amountToSubtract) Возвращает копию этого временного промежутка с вычтенным указанным промежутком времени. |
ChronoPeriod |
multipliedBy(int scalar) Возвращает новый экземпляр, где каждое значение в этом временном промежутке умножено на указанный скаляр. |
default ChronoPeriod |
negated() Возвращает новый экземпляр с отрицанием каждого значения в этом временном промежутке. |
ChronoPeriod |
normalized() Возвращает копию этого временного промежутка с приведенными к нормальному виду значениями каждой единицы. |
ChronoPeriod |
plus(TemporalAmount amountToAdd) Возвращает копию этого временного промежутка, к которому добавлен указанный промежуток. |
Temporal |
subtractFrom(Temporal temporal) Вычитает этот временной промежуток из указанного временного объекта. |
String |
toString() Выводит этот временной промежуток в виде |
Методы
between
static ChronoPeriod between(ChronoLocalDate startDateInclusive,
ChronoLocalDate endDateExclusive) Получает период, представляющий собой промежуток времени между двумя датами.
Начальная дата включена, а конечная — нет. Период рассчитывается с помощью ChronoLocalDate.until(ChronoLocalDate). Таким образом, вычисление зависит от хронологии.
Для расчета используется хронология первой даты. Хронология второй даты игнорируется, а сама дата преобразуется в целевую хронологическую систему до начала расчета.
Результат этого метода может быть отрицательным периодом, если конечная дата предшествует начальной. В большинстве случаев знак «плюс» или «минус» будет одинаковым для всех поддерживаемых единиц измерения.
- Параметры:
-
startDateInclusive- начальная дата, включая, определяющая хронологию расчета, не null -
endDateExclusive- конечная дата, исключая, в любой хронологии, не null - Возвращает:
- период между этой датой и конечной датой, не null
- См. также:
ChronoLocalDate.until(ChronoLocalDate)
get
long get(TemporalUnit unit)
Получает значение запрошенной единицы измерения.
Поддерживаемые единицы измерения зависят от хронологии. Обычно это YEARS, MONTHS и DAYS. Запрос несуществующей единицы измерения вызовет исключение.
- Определено в:
-
getв интерфейсеTemporalAmount - Параметры:
-
unit- единица измерения, для которой нужно получить значение - Возвращает:
- значение long единицы измерения
- Исключения:
-
DateTimeException- если единица измерения не поддерживается -
UnsupportedTemporalTypeException- если единица измерения не поддерживается
getUnits
List<TemporalUnit> getUnits()
Возвращает набор единиц измерения, поддерживаемых этим периодом.
Поддерживаемые единицы измерения зависят от хронологии. Обычно это YEARS, MONTHS и DAYS. Они возвращаются в порядке убывания важности.
Этот набор можно использовать совместно с get(TemporalUnit) для доступа ко всему состоянию периода.
- Определено в:
-
getUnitsв интерфейсеTemporalAmount - Возвращает:
- список поддерживаемых единиц измерения, не null
getChronology
Chronology getChronology()
Возвращает хронологию, определяющую смысл поддерживаемых единиц измерения.
Период определяется хронологией. Она управляет поддерживаемыми единицами измерения и ограничивает сложение/вычитание экземплярами той же хронологии.
- Возвращает:
- хронологию, определяющую период, не null
isZero
default boolean isZero()
Проверяет, равны ли нулю все поддерживаемые единицы измерения этого периода.
- Возвращает:
- true, если период имеет нулевую длину
isNegative
default boolean isNegative()
Проверяет, являются ли какие-либо поддерживаемые единицы измерения этого периода отрицательными.
- Возвращает:
- true, если какая-либо единица измерения этого периода отрицательна
plus
ChronoPeriod plus(TemporalAmount amountToAdd)
Возвращает копию этого периода, с добавленным указанным периодом.
Если указанное количество — это ChronoPeriod, то оно должно иметь ту же хронологию, что и этот период. Реализации могут выбирать принимать или отклонять другие TemporalAmount реализации.
Этот экземпляр неизменяем и не изменяется в результате вызова этого метода.
- Параметры:
-
amountToAdd- период для добавления, не null - Возвращает:
- новый период, основанный на этом периоде с добавленным запрошенным периодом, не null
- Исключения:
-
ArithmeticException- если произошел переполнение
minus
ChronoPeriod minus(TemporalAmount amountToSubtract)
Возвращает копию этого периода, с вычтенным указанным периодом.
Если указанное количество — это ChronoPeriod, то оно должно иметь ту же хронологию, что и этот период. Реализации могут выбирать принимать или отклонять другие TemporalAmount реализации.
Этот экземпляр неизменяем и не изменяется в результате вызова этого метода.
- Параметры:
-
amountToSubtract- период для вычитания, не null - Возвращает:
- новый период, основанный на этом периоде с вычтенным запрошенным периодом, не null
- Исключения:
-
ArithmeticException- если произошел переполнение
multipliedBy
ChronoPeriod multipliedBy(int scalar)
Возвращает новый экземпляр, в котором каждое значение в этом периоде умножается на указанный скаляр.
Это возвращает период, в котором каждая поддерживаемая единица измерения умножается индивидуально. Например, период "2 года, -3 месяца и 4 дня", умноженный на 3, вернет "6 лет, -9 месяцев и 12 дней". Нормализация не выполняется.
- Параметры:
-
scalar- скаляр для умножения, не null - Возвращает:
- новый период, основанный на этом периоде с умноженными значениями на скаляр, не null
- Исключения:
-
ArithmeticException- если произошел переполнение
negated
default ChronoPeriod negated()
Возвращает новый экземпляр, в котором каждое значение в этом периоде изменяется на противоположное.
Это возвращает период, в котором каждая поддерживаемая единица измерения изменяется на противоположное. Например, период "2 года, -3 месяца и 4 дня" будет изменён на "-2 года, 3 месяца и -4 дня". Нормализация не выполняется.
- Возвращает:
- новый период, основанный на этом периоде со значениями, изменёнными на противоположное, не null
- Исключения:
-
ArithmeticException- если произошел переполнение, что происходит только в случае, если у одной из единиц значениеLong.MIN_VALUE
normalized
ChronoPeriod normalized()
Возвращает копию этого периода с нормализованными значениями каждой единицы измерения.
Процесс нормализации специфичен для каждой системы календаря. Например, в системе календаря ISO года и месяцы нормализуются, но дни нет, так что «15 месяцев» будут нормализованы в «1 год и 3 месяца».
Этот экземпляр неизменяем и не изменяется в результате вызова этого метода.
- Возвращает:
- новый период, основанный на этом периоде с нормализованными значениями каждой единицы измерения, не null
- Исключения:
-
ArithmeticException- если произошел переполнение
addTo
Temporal addTo(Temporal temporal)
Добавляет этот период к указанному временному объекту.
Это возвращает временной объект того же типа, что и входной, с добавленным этим периодом.
В большинстве случаев яснее использовать обратный порядок вызова, используя Temporal.plus(TemporalAmount).
// these two lines are equivalent, but the second approach is recommended dateTime = thisPeriod.addTo(dateTime); dateTime = dateTime.plus(thisPeriod);
Указанный временной объект должен иметь ту же хронологию, что и этот период. Возвращается временной объект с добавленными ненулевыми поддерживаемыми единицами.
Этот экземпляр неизменяем и не изменяется в результате вызова этого метода.
- Определено в:
-
addToв интерфейсеTemporalAmount - Параметры:
-
temporal- временной объект для корректировки, не null - Возвращает:
- объект того же типа с произведённой корректировкой, не null
- Исключения:
-
DateTimeException- если добавление невозможно -
ArithmeticException- если произошел переполнение
subtractFrom
Temporal subtractFrom(Temporal temporal)
Вычитает этот период из указанного временного объекта.
Это возвращает временной объект того же типа, что и входной, с вычтенным этим периодом.
В большинстве случаев яснее использовать обратный порядок вызова, используя Temporal.minus(TemporalAmount).
// these two lines are equivalent, but the second approach is recommended dateTime = thisPeriod.subtractFrom(dateTime); dateTime = dateTime.minus(thisPeriod);
Указанный временной объект должен иметь ту же хронологию, что и этот период. Возвращается временной объект с вычтенными ненулевыми поддерживаемыми единицами.
Этот экземпляр неизменяем и не изменяется в результате вызова этого метода.
- Определено в:
-
subtractFromв интерфейсеTemporalAmount - Параметры:
-
temporal- временной объект для корректировки, не null - Возвращает:
- объект того же типа с произведённой корректировкой, не null
- Исключения:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если произошел переполнение
equals
boolean equals(Object obj)
Проверяет, равен ли этот период другому периоду, включая хронологию.
Сравнивает этот период с другим, гарантируя, что тип, каждое значение и хронология совпадают. Обратите внимание, что это означает, что период «15 месяцев» не равен периоду «1 год и 3 месяца».
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект для проверки, null возвращает false - Возвращает:
- true, если этот период равен другому периоду
- См. также:
-
Object.hashCode(),HashMap
hashCode
int hashCode()
Хэш-код для этого периода.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- соответствующий хэш-код
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
String toString()
Выводит этот период в виде String.
Вывод будет содержать значения периода и хронологию.
© 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.