Spec-Zone.ru › OpenJDK 24

Класс Duration

java.lang.Object
java.time.Duration
Все реализованные интерфейсы:
Serializable, Comparable<Duration>, TemporalAmount
public final class Duration extends Object implements TemporalAmount, Comparable<Duration>, Serializable
Время, представляющее собой продолжительность, например, '34.5 секунд'.

Этот класс моделирует количество времени в секундах и наносекундах. К нему можно получить доступ с использованием других единиц измерения продолжительности, таких как минуты и часы. Кроме того, можно использовать единицу DAYS, которая считается точно равной 24 часам, игнорируя при этом эффекты перехода на летнее время. Смотрите Period для эквивалента для даты в этом классе.

Физическая продолжительность может быть бесконечной. Для практических целей продолжительность хранится с ограничениями, похожими на ограничения Instant. Продолжительность использует разрешение в наносекундах с максимальным значением секунд, которое может храниться в long. Это больше, чем текущий предполагаемый возраст Вселенной.

Диапазон продолжительности требует хранения числа, большего, чем long. Для этого класс хранит long, представляющий секунды, и int, представляющий наносекунды в секунде, которое всегда будет находиться в диапазоне от 0 до 999 999 999. Модель представляет направленную продолжительность, то есть продолжительность может быть отрицательной.

Продолжительность измеряется в "секундах", но эти секунды не обязательно идентичны научному определению "секунды СИ" на основе атомных часов. Это различие затрагивает только продолжительности, измеренные близко к появлению високосной секунды и не должно повлиять на большинство приложений. Смотрите Instant для обсуждения значения секунды и временных масштабов.

Это бессвязный класс; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе может произойти непредсказуемое поведение. Например, в будущей версии синхронизация может завершиться неудачно. Для сравнений следует использовать метод equals.

Требования к реализации:
Этот класс неизменяемый и потокобезопасный.
С:
1.8
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final Duration ZERO
Постоянная для продолжительности ноль.

Краткое описание методов

Модификатор и тип Метод Описание
Duration abs()
Возвращает копию этой продолжительности с положительной длиной.
Temporal addTo(Temporal temporal)
Добавляет эту продолжительность к указанному временному объекту.
static Duration between(Temporal startInclusive, Temporal endExclusive)
Получает Duration, представляющий продолжительность между двумя временными объектами.
int compareTo(Duration otherDuration)
Сравнивает эту продолжительность с указанным Duration.
Duration dividedBy(long divisor)
Возвращает копию этой продолжительности, деленную на указанное значение.
long dividedBy(Duration divisor)
Возвращает количество целых раз, когда указанная Duration встречается в этой Duration.
boolean equals(Object other)
Проверяет, равна ли эта продолжительность указанному Duration.
static Duration from(TemporalAmount amount)
Получает экземпляр Duration из временного значения.
long get(TemporalUnit unit)
Получает значение запрашиваемой единицы.
int getNano()
Получает количество наносекунд в секунде в этой продолжительности.
long getSeconds()
Получает количество секунд в этой продолжительности.
List<TemporalUnit> getUnits()
Получает набор единиц, поддерживаемых этой продолжительностью.
int hashCode()
Хеш-код для этой продолжительности.
boolean isNegative()
Проверяет, является ли эта продолжительность отрицательной, исключая ноль.
boolean isPositive()
Проверяет, является ли эта продолжительность положительной, исключая ноль.
boolean isZero()
Проверяет, имеет ли эта продолжительность нулевую длину.
Duration minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этой продолжительности с вычтенной указанной продолжительностью.
Duration minus(Duration duration)
Возвращает копию этой продолжительности с вычтенной указанной продолжительностью.
Duration minusDays(long daysToSubtract)
Возвращает копию этой продолжительности с вычтенной указанной продолжительностью в стандартных 24-часовых днях.
Duration minusHours(long hoursToSubtract)
Возвращает копию этой продолжительности с вычтенной указанной продолжительностью в часах.
Duration minusMillis(long millisToSubtract)
Возвращает копию этой продолжительности с вычтенной указанной продолжительностью в миллисекундах.
Duration minusMinutes(long minutesToSubtract)
Возвращает копию этой продолжительности с вычтенной указанной продолжительностью в минутах.
Duration minusNanos(long nanosToSubtract)
Возвращает копию этой продолжительности с вычтенной указанной продолжительностью в наносекундах.
Duration minusSeconds(long secondsToSubtract)
Возвращает копию этой продолжительности с вычтенной указанной продолжительностью в секундах.
Duration multipliedBy(long multiplicand)
Возвращает копию этой продолжительности, умноженную на скаляр.
Duration negated()
Возвращает копию этой продолжительности с отрицательной длиной.
static Duration of(long amount, TemporalUnit unit)
Получает Duration, представляющий значение в указанной единице.
static Duration ofDays(long days)
Получает Duration, представляющий количество стандартных 24-часовых дней.
static Duration ofHours(long hours)
Получает Duration, представляющий количество стандартных часов.
static Duration ofMillis(long millis)
Получает Duration, представляющий количество миллисекунд.
static Duration ofMinutes(long minutes)
Получает Duration, представляющий количество стандартных минут.
static Duration ofNanos(long nanos)
Получает Duration, представляющий количество наносекунд.
static Duration ofSeconds(long seconds)
Получает Duration, представляющий количество секунд.
static Duration ofSeconds(long seconds, long nanoAdjustment)
Получает Duration, представляющий количество секунд и корректировку в наносекундах.
static Duration parse(CharSequence text)
Получает Duration из текстовой строки, такой как PnDTnHnMn.nS.
Duration plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этой продолжительности с добавленной указанной продолжительностью.
Duration plus(Duration duration)
Возвращает копию этой продолжительности с добавленной указанной продолжительностью.
Duration plusDays(long daysToAdd)
Возвращает копию этой продолжительности с добавленной указанной продолжительностью в стандартных 24-часовых днях.
Duration plusHours(long hoursToAdd)
Возвращает копию этой продолжительности с добавленной указанной продолжительностью в часах.
Duration plusMillis(long millisToAdd)
Возвращает копию этой продолжительности с добавленной указанной продолжительностью в миллисекундах.
Duration plusMinutes(long minutesToAdd)
Возвращает копию этой продолжительности с добавленной указанной продолжительностью в минутах.
Duration plusNanos(long nanosToAdd)
Возвращает копию этой продолжительности с добавленной указанной продолжительностью в наносекундах.
Duration plusSeconds(long secondsToAdd)
Возвращает копию этой продолжительности с добавленной указанной продолжительностью в секундах.
Temporal subtractFrom(Temporal temporal)
Вычитает эту продолжительность из указанного временного объекта.
long toDays()
Получает количество дней в этой продолжительности.
long toDaysPart()
Извлекает количество дней в продолжительности.
long toHours()
Получает количество часов в этой продолжительности.
int toHoursPart()
Извлекает количество часов в продолжительности.
long toMillis()
Преобразует эту продолжительность в общую длину в миллисекундах.
int toMillisPart()
Извлекает количество миллисекунд в продолжительности.
long toMinutes()
Получает количество минут в этой продолжительности.
int toMinutesPart()
Извлекает количество минут в продолжительности.
long toNanos()
Преобразует эту продолжительность в общую длину в наносекундах, выраженную как long.
int toNanosPart()
Получает часть наносекунд в секундах продолжительности.
long toSeconds()
Получает количество секунд в этой продолжительности.
int toSecondsPart()
Извлекает количество секунд в продолжительности.
String toString()
Строковое представление этой продолжительности с использованием представления на основе секунд ISO-8601, например, PT8H6M12.345S.
Duration truncatedTo(TemporalUnit unit)
Возвращает копию этого Duration, усеченного до указанной единицы.
Duration withNanos(int nanoOfSecond)
Возвращает копию этой продолжительности с указанным количеством наносекунд.
Duration withSeconds(long seconds)
Возвращает копию этой продолжительности с указанным количеством секунд.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание полей

ZERO

public static final Duration ZERO
Константа для длительности ноль.

Подробное описание методов

ofDays

public static Duration ofDays(long days)
Получает Duration, представляющую количество стандартных 24-часовых дней.

Секунды рассчитываются на основе стандартного определения дня, где каждый день равен 86400 секундам, что подразумевает 24-часовой день. Наносекунды в поле секунды установлены в ноль.

Параметры:
days - количество дней, положительное или отрицательное
Возвращает:
Duration, не null
Исключения:
ArithmeticException - если входное значение дней превышает емкость Duration

ofHours

public static Duration ofHours(long hours)
Получает Duration, представляющую количество стандартных часов.

Секунды рассчитываются на основе стандартного определения часа, где каждый час равен 3600 секундам. Наносекунды в поле секунды установлены в ноль.

Параметры:
hours - количество часов, положительное или отрицательное
Возвращает:
Duration, не null
Исключения:
ArithmeticException - если входное количество часов превышает емкость Duration

ofMinutes

public static Duration ofMinutes(long minutes)
Получает Duration, представляющую количество стандартных минут.

Секунды рассчитываются на основе стандартного определения минуты, где каждая минута равна 60 секундам. Наносекунды в поле секунды установлены в ноль.

Параметры:
minutes - количество минут, положительное или отрицательное
Возвращает:
Duration, не null
Исключения:
ArithmeticException - если входное количество минут превышает емкость Duration

ofSeconds

public static Duration ofSeconds(long seconds)
Получает Duration, представляющую количество секунд.

Наносекунды в поле секунды установлены в ноль.

Параметры:
seconds - количество секунд, положительное или отрицательное
Возвращает:
Duration, не null

ofSeconds

public static Duration ofSeconds(long seconds, long nanoAdjustment)
Получает Duration, представляющую количество секунд и корректировку в наносекундах.

Этот метод позволяет передавать произвольное количество наносекунд. Фабрика будет изменять значения секунды и наносекунд, чтобы гарантировать, что хранимые наносекунды находятся в диапазоне от 0 до 999 999 999. Например, следующее приведет к точно такой же длительности:

  Duration.ofSeconds(3, 1);
  Duration.ofSeconds(4, -999_999_999);
  Duration.ofSeconds(2, 1000_000_001);
 
Параметры:
seconds - количество секунд, положительное или отрицательное
nanoAdjustment - корректировка наносекунд к количеству секунд, положительная или отрицательная
Возвращает:
Duration, не null
Исключения:
ArithmeticException - если корректировка приводит к превышению емкости Duration

ofMillis

public static Duration ofMillis(long millis)
Получает Duration, представляющую количество миллисекунд.

Секунды и наносекунды извлекаются из указанных миллисекунд.

Параметры:
millis - количество миллисекунд, положительное или отрицательное
Возвращает:
Duration, не null

ofNanos

public static Duration ofNanos(long nanos)
Получает Duration, представляющую количество наносекунд.

Секунды и наносекунды извлекаются из указанных наносекунд.

Параметры:
nanos - количество наносекунд, положительное или отрицательное
Возвращает:
Duration, не null

of

public static Duration of(long amount, TemporalUnit unit)
Получает Duration, представляющую количество в указанной единице измерения.

Параметры представляют две части фразы, например, '6 часов'. Например:

  Duration.of(3, SECONDS);
  Duration.of(465, HOURS);
 
Только подмножество единиц принимается этим методом. Единица должна иметь точную длительность или быть ChronoUnit.DAYS, которая рассматривается как 24 часа. Другие единицы вызывают исключение.
Параметры:
amount - количество длительности, измеренное в терминах единицы, положительное или отрицательное
unit - единица измерения длительности, должна иметь точную длительность, не null
Возвращает:
Duration, не null
Исключения:
DateTimeException - если единица имеет приблизительную длительность
ArithmeticException - если происходит числовой переполнение

from

public static Duration from(TemporalAmount amount)
Получает экземпляр Duration из временного количества.

Это получает длительность на основе указанного количества. TemporalAmount представляет собой количество времени, которое может быть основано на дате или времени, которое эта фабрика извлекает в длительность.

Преобразование повторяет набор единиц из количества и использует длительность единицы для расчета общей Duration. Только подмножество единиц принимается этим методом. Единица должна иметь точную длительность или быть ChronoUnit.DAYS, которая рассматривается как 24 часа. Если обнаружены какие-либо другие единицы, то выбрасывается исключение.

Параметры:
amount - временное количество для преобразования, не null
Возвращает:
эквивалентную длительность, не null
Исключения:
DateTimeException - если невозможно преобразовать в Duration
ArithmeticException - если происходит числовое переполнение

parse

public static Duration parse(CharSequence text)
Получает Duration из текстовой строки, например PnDTnHnMn.nS.

Это анализирует текстовое представление длительности, включая строку, созданную toString(). Принимаемые форматы основаны на формате длительности ISO-8601 PnDTnHnMn.nS, где дни рассматриваются как ровно 24 часа.

Строка начинается с необязательного знака, обозначаемого символом ASCII минус или плюс. Если отрицательный, вся длительность отрицается. Далее идет ASCII буква "P" в верхнем или нижнем регистре. Затем четыре раздела, каждый из которых состоит из числа и суффикса. Разделы имеют суффиксы ASCII "D", "H", "M" и "S" для дней, часов, минут и секунд, принимаемых в верхнем или нижнем регистре. Суффиксы должны появляться в порядке. ASCII буква "T" должна появиться перед первой встреченной секцией часов, минут или секунд, если таковые имеются. Должен быть присутствовать по крайней мере один из четырех разделов, а если "T" присутствует, то должен быть по крайней мере один раздел после "T". Часть числа каждого раздела должна состоять из одной или нескольких ASCII цифр. Число может быть предварено символом ASCII минус или плюс. Количество дней, часов и минут должно быть преобразовано в long. Количество секунд должно быть преобразовано в long с необязательной дробной частью. Десятичная точка может быть точкой или запятой. Дробная часть может иметь от нуля до 9 цифр.

Ведущий знак плюс/минус и отрицательные значения для других единиц не являются частью стандарта ISO-8601.

Примеры:

    "PT20.345S" -- parses as "20.345 seconds"
    "PT15M"     -- parses as "15 minutes" (where a minute is 60 seconds)
    "PT10H"     -- parses as "10 hours" (where an hour is 3600 seconds)
    "P2D"       -- parses as "2 days" (where a day is 24 hours or 86400 seconds)
    "P2DT3H4M"  -- parses as "2 days, 3 hours and 4 minutes"
    "PT-6H3M"    -- parses as "-6 hours and +3 minutes"
    "-PT6H3M"    -- parses as "-6 hours and -3 minutes"
    "-PT-6H+3M"  -- parses as "+6 hours and -3 minutes"
 
Параметры:
text - текст для анализа, не null
Возвращает:
анализ длительности, не null
Исключения:
DateTimeParseException - если текст не может быть проанализирован в длительность

between

public static Duration between(Temporal startInclusive, Temporal endExclusive)
Получает Duration, представляющую длительность между двумя временными объектами.

Это вычисляет длительность между двумя временными объектами. Если объекты разных типов, то длительность рассчитывается на основе типа первого объекта. Например, если первый аргумент является LocalTime, то второй аргумент преобразуется в LocalTime.

Указанные временные объекты должны поддерживать единицу SECONDS. Для обеспечения точности либо единица NANOS, либо поле NANO_OF_SECOND должны поддерживаться.

Результат этого метода может быть отрицательной длительностью, если конец находится до начала. Для получения положительной длительности вызовите abs() на результате.

Параметры:
startInclusive - начальный момент, включительно, не null
endExclusive - конечный момент, исключая, не null
Возвращает:
Duration, не null
Исключения:
DateTimeException - если секунды между временными объектами получить нельзя
ArithmeticException - если вычисление превышает емкость Duration

get

public long get(TemporalUnit unit)
Получает значение запрошенного подразделения.

Возвращает значение для каждого из двух поддерживаемых подразделений, SECONDS и NANOS. Все другие подразделения вызывают исключение.

Specified by:
get в интерфейсе TemporalAmount
Parameters:
unit - TemporalUnit, для которого нужно вернуть значение
Returns:
длинное значение подразделения
Throws:
DateTimeException - если подразделение не поддерживается
UnsupportedTemporalTypeException - если подразделение не поддерживается

getUnits

public List<TemporalUnit> getUnits()
Получает набор подразделений, поддерживаемых этим интервалом времени.

Поддерживаемые подразделения — SECONDS и NANOS. Они возвращаются в порядке секунды, наносекунды.

Этот набор можно использовать совместно с get(TemporalUnit) для доступа ко всему состоянию интервала времени.

Specified by:
getUnits в интерфейсе TemporalAmount
Returns:
список, содержащий подразделения секунды и наносекунды, не null

isPositive

public boolean isPositive()
Проверяет, является ли этот интервал времени положительным, исключая ноль.

Duration представляет направленное расстояние между двумя точками на временной шкале и, следовательно, может быть положительным, нулевым или отрицательным. Этот метод проверяет, является ли длина больше нуля.

Returns:
true, если этот интервал времени имеет общую длину больше нуля
Since:
18

isZero

public boolean isZero()
Проверяет, имеет ли этот интервал времени длину равную нулю.

Duration представляет направленное расстояние между двумя точками на временной шкале и, следовательно, может быть положительным, нулевым или отрицательным. Этот метод проверяет, равна ли длина нулю.

Returns:
true, если этот интервал времени имеет общую длину равную нулю

isNegative

public boolean isNegative()
Проверяет, является ли этот интервал времени отрицательным, исключая ноль.

Duration представляет направленное расстояние между двумя точками на временной шкале и, следовательно, может быть положительным, нулевым или отрицательным. Этот метод проверяет, является ли длина меньше нуля.

Returns:
true, если этот интервал времени имеет общую длину меньше нуля

getSeconds

public long getSeconds()
Получает количество секунд в этом интервале времени.

Длина интервала времени хранится с использованием двух полей — секунд и наносекунд. Часть наносекунд представляет собой значение от 0 до 999 999 999, которое является корректировкой длины в секундах. Полная продолжительность определяется вызовом этого метода и getNano().

Duration представляет направленное расстояние между двумя точками на временной шкале. Отрицательный интервал времени выражается знаком минус части секунд. Интервал времени -1 наносекунда хранится как -1 секунда плюс 999 999 999 наносекунд.

Returns:
целая часть секунд длины интервала времени, положительная или отрицательная

getNano

public int getNano()
Получает количество наносекунд в секунде в этом интервале времени.

Длина интервала времени хранится с использованием двух полей — секунд и наносекунд. Часть наносекунд представляет собой значение от 0 до 999 999 999, которое является корректировкой длины в секундах. Полная продолжительность определяется вызовом этого метода и getSeconds().

Duration представляет собой направленное расстояние между двумя точками на временной шкале. Отрицательный интервал времени выражается знаком минус части секунд. Интервал времени -1 наносекунда хранится как -1 секунда плюс 999 999 999 наносекунд.

Returns:
наносекунды в части секунд длины интервала времени, от 0 до 999 999 999

withSeconds

public Duration withSeconds(long seconds)
Возвращает копию этого интервала времени с указанным количеством секунд.

Возвращает интервал времени с указанными секундами, сохраняя часть наносекунд этой продолжительности.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
seconds - секунды для представления, могут быть отрицательными
Returns:
Duration на основе этого интервала времени с запрошенными секундами, не null

withNanos

public Duration withNanos(int nanoOfSecond)
Возвращает копию этого интервала времени с указанным значением наносекунд.

Возвращает интервал времени с указанным значением наносекунд, сохраняя часть секунд этого интервала времени.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
nanoOfSecond - наносекунды для представления, от 0 до 999 999 999
Returns:
Duration на основе этого интервала времени с запрошенными наносекундами, не null
Throws:
DateTimeException - если наносекунды некорректны

plus

public Duration plus(Duration duration)
Возвращает копию этого интервала времени с добавленным указанным интервалом времени.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
duration - интервал времени для добавления, положительный или отрицательный, не null
Returns:
Duration на основе этого интервала времени с добавленным указанным интервалом времени, не null
Throws:
ArithmeticException - если произошел переполнение числовых значений

plus

public Duration plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого интервала времени с добавленным указанным интервалом времени.

Значение интервала времени измеряется в терминах указанного подразделения. Только подмножество подразделений принимается этим методом. Подразделение должно иметь точную продолжительность или быть ChronoUnit.DAYS, который рассматривается как 24 часа. Другие подразделения вызывают исключение.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
amountToAdd - значение для добавления, измеряемое в терминах подразделения, положительное или отрицательное
unit - подразделение, в котором измеряется значение, должно иметь точную продолжительность, не null
Returns:
Duration на основе этого интервала времени с добавленным указанным интервалом времени, не null
Throws:
UnsupportedTemporalTypeException - если подразделение не поддерживается
ArithmeticException - если произошел переполнение числовых значений

plusDays

public Duration plusDays(long daysToAdd)
Возвращает копию этого интервала времени с добавлением указанного интервала времени в стандартных 24-часовых днях.

Количество дней умножается на 86400, чтобы получить количество секунд для добавления. Это основано на стандартном определении дня как 24 часов.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
daysToAdd - количество дней для добавления, положительное или отрицательное
Returns:
Duration на основе этого интервала времени с добавленными указанными днями, не null
Throws:
ArithmeticException - если произошел переполнение числовых значений

plusHours

public Duration plusHours(long hoursToAdd)
Возвращает копию этого интервала времени с добавлением указанного интервала времени в часах.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
hoursToAdd - количество часов для добавления, положительное или отрицательное
Returns:
Duration на основе этого интервала времени с добавленными указанными часами, не null
Throws:
ArithmeticException - если произошел переполнение числовых значений

plusMinutes

public Duration plusMinutes(long minutesToAdd)
Возвращает копию этого интервала времени с добавлением указанного интервала времени в минутах.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
minutesToAdd - количество минут для добавления, положительное или отрицательное
Returns:
Duration на основе этого интервала времени с добавленными указанными минутами, не null
Throws:
ArithmeticException - если произошел переполнение числовых значений

plusSeconds

public Duration plusSeconds(long secondsToAdd)
Возвращает копию этого интервала времени с добавлением указанного интервала времени в секундах.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
secondsToAdd - количество секунд для добавления, положительное или отрицательное
Returns:
Duration на основе этого интервала времени с добавленными указанными секундами, не null
Throws:
ArithmeticException - если произошел переполнение числовых значений

plusMillis

public Duration plusMillis(long millisToAdd)
Возвращает копию этого интервала времени с добавлением указанного интервала времени в миллисекундах.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
millisToAdd - количество миллисекунд для добавления, положительное или отрицательное
Returns:
Duration на основе этого интервала времени с добавленными указанными миллисекундами, не null
Throws:
ArithmeticException - если произошел переполнение числовых значений

plusNanos

public Duration plusNanos(long nanosToAdd)
Возвращает копию этого интервала времени с добавлением указанного количества наносекунд.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
nanosToAdd - количество наносекунд для добавления, положительное или отрицательное
Returns:
копия интервала времени, основанного на этом интервале времени с добавленными наносекундами, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

minus

public Duration minus(Duration duration)
Возвращает копию этого интервала времени с вычитанием указанного интервала времени.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
duration - интервал времени для вычитания, положительный или отрицательный, не null
Returns:
копия интервала времени, основанного на этом интервале времени с вычтенным указанным интервалом времени, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

minus

public Duration minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого интервала времени с вычитанием указанного интервала времени.

Значение интервала времени измеряется в указанных единицах. Этот метод принимает только подмножество единиц. Единица должна иметь точное значение или быть ChronoUnit.DAYS, что обрабатывается как 24 часа. Другие единицы вызовут исключение.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
amountToSubtract - значение для вычитания, измеренное в указанных единицах, положительное или отрицательное
unit - единица измерения значения, должна иметь точное значение, не null
Returns:
копия интервала времени, основанного на этом интервале времени с вычтенным указанным интервалом времени, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

minusDays

public Duration minusDays(long daysToSubtract)
Возвращает копию этого интервала времени с вычитанием указанного количества стандартных суток по 24 часа.

Количество дней умножается на 86400 для получения количества секунд для вычитания. Это основано на стандартном определении суток как 24 часов.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
daysToSubtract - количество суток для вычитания, положительное или отрицательное
Returns:
копия интервала времени, основанного на этом интервале времени с вычтенными указанными днями, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

minusHours

public Duration minusHours(long hoursToSubtract)
Возвращает копию этого интервала времени с вычитанием указанного количества часов.

Количество часов умножается на 3600 для получения количества секунд для вычитания.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
hoursToSubtract - количество часов для вычитания, положительное или отрицательное
Returns:
копия интервала времени, основанного на этом интервале времени с вычтенными указанными часами, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

minusMinutes

public Duration minusMinutes(long minutesToSubtract)
Возвращает копию этого интервала времени с вычитанием указанного количества минут.

Количество минут умножается на 60 для получения количества секунд для вычитания.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
minutesToSubtract - количество минут для вычитания, положительное или отрицательное
Returns:
копия интервала времени, основанного на этом интервале времени с вычтенными указанными минутами, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

minusSeconds

public Duration minusSeconds(long secondsToSubtract)
Возвращает копию этого интервала времени с вычитанием указанного количества секунд.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
secondsToSubtract - количество секунд для вычитания, положительное или отрицательное
Returns:
копия интервала времени, основанного на этом интервале времени с вычтенными указанными секундами, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

minusMillis

public Duration minusMillis(long millisToSubtract)
Возвращает копию этого интервала времени с вычитанием указанного количества миллисекунд.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
millisToSubtract - количество миллисекунд для вычитания, положительное или отрицательное
Returns:
копия интервала времени, основанного на этом интервале времени с вычтенными указанными миллисекундами, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

minusNanos

public Duration minusNanos(long nanosToSubtract)
Возвращает копию этого интервала времени с вычитанием указанного количества наносекунд.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
nanosToSubtract - количество наносекунд для вычитания, положительное или отрицательное
Returns:
копия интервала времени, основанного на этом интервале времени с вычтенными указанными наносекундами, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

multipliedBy

public Duration multipliedBy(long multiplicand)
Возвращает копию этого интервала времени, умноженного на скаляр.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
multiplicand - значение для умножения интервала времени, положительное или отрицательное
Returns:
копия интервала времени, основанного на этом интервале времени, умноженного на указанный скаляр, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

dividedBy

public Duration dividedBy(long divisor)
Возвращает копию этого интервала времени, деленного на указанное значение.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
divisor - значение для деления интервала времени, положительное или отрицательное, не ноль
Returns:
копия интервала времени, основанного на этом интервале времени, деленного на указанный делитель, не null
Throws:
ArithmeticException - если делитель равен нулю или если происходит переполнение числовых значений

dividedBy

public long dividedBy(Duration divisor)
Возвращает количество целых раз, когда указанный интервал времени встречается в этом интервале времени.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Parameters:
divisor - значение для деления интервала времени, положительное или отрицательное, не null
Returns:
количество целых раз, округленное к нулю, когда указанный Duration встречается в этом интервале времени, может быть отрицательным
Throws:
ArithmeticException - если делитель равен нулю или если происходит переполнение числовых значений
Since:
9

negated

public Duration negated()
Возвращает копию этого интервала времени с обратным знаком длины.

Этот метод меняет знак общей длины этого интервала времени. Например, PT1.3S вернет PT-1.3S.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Returns:
копия интервала времени, основанного на этом интервале времени с измененным знаком, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

abs

public Duration abs()
Возвращает копию этого интервала времени с положительной длиной.

Этот метод возвращает положительный интервал времени, эффективно удаляя знак из любого отрицательного значения общей длины. Например, PT-1.3S вернет PT1.3S.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Returns:
копия интервала времени, основанного на этом интервале времени с абсолютной длиной, не null
Throws:
ArithmeticException - если происходит переполнение числовых значений

addTo

public Temporal addTo(Temporal temporal)
Добавляет этот интервал времени к указанному объекту временной шкалы.

Это возвращает объект временной шкалы того же типа, что и входной, с добавленным этим интервалом времени.

В большинстве случаев более понятно использовать обратный порядок вызова, используя Temporal.plus(TemporalAmount).

   // these two lines are equivalent, but the second approach is recommended
   dateTime = thisDuration.addTo(dateTime);
   dateTime = dateTime.plus(thisDuration);
 

Вычисление будет добавлять секунды, а затем наносекунды. Будут добавлены только ненулевые значения.

Этот экземпляр неизменяем и не изменяется этим вызовом метода.

Specified by:
addTo in interface TemporalAmount
Parameters:
temporal - объект временной шкалы для корректировки, не null
Returns:
объект того же типа с внесенной корректировкой, не null
Throws:
DateTimeException - если добавление невозможно
ArithmeticException - если происходит переполнение числовых значений

subtractFrom

public Temporal subtractFrom(Temporal temporal)
Вычитает эту продолжительность из указанного временного объекта.

Возвращает временной объект того же наблюдаемого типа, что и входной, с вычтенной продолжительностью.

В большинстве случаев использование обратного порядка вызова, с помощью Temporal.minus(TemporalAmount), будет более понятным.

   // these two lines are equivalent, but the second approach is recommended
   dateTime = thisDuration.subtractFrom(dateTime);
   dateTime = dateTime.minus(thisDuration);
 

Вычисление вычитает секунды, затем наносекунды. Будут добавлены только ненулевые значения.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Specified by:
subtractFrom в интерфейсе TemporalAmount
Parameters:
temporal - временной объект для корректировки, не null
Returns:
объект того же типа с произведённой корректировкой, не null
Throws:
DateTimeException - если вычитание невозможно
ArithmeticException - если произошел переполнение числовых значений

toDays

public long toDays()
Возвращает количество дней в этой продолжительности.

Возвращает общее количество дней в продолжительности, разделив количество секунд на 86400. Это основано на стандартном определении дня как 24 часов.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
количество дней в продолжительности, может быть отрицательным

toHours

public long toHours()
Возвращает количество часов в этой продолжительности.

Возвращает общее количество часов в продолжительности, разделив количество секунд на 3600.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
количество часов в продолжительности, может быть отрицательным

toMinutes

public long toMinutes()
Возвращает количество минут в этой продолжительности.

Возвращает общее количество минут в продолжительности, разделив количество секунд на 60.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
количество минут в продолжительности, может быть отрицательным

toSeconds

public long toSeconds()
Возвращает количество секунд в этой продолжительности.

Возвращает общее количество целых секунд в продолжительности.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
целая часть секунд длительности, положительная или отрицательная
Since:
9

toMillis

public long toMillis()
Преобразует эту продолжительность в общее количество миллисекунд.

Если эта продолжительность слишком велика, чтобы уместиться в long миллисекундах, то генерируется исключение.

Если эта продолжительность имеет точность больше миллисекунды, то преобразование отбросит любые излишки точности, как если бы значение в наносекундах было подвергнуто целочисленному делению на миллион.

Returns:
общее количество миллисекунд длительности
Throws:
ArithmeticException - если произошел переполнение числовых значений

toNanos

public long toNanos()
Преобразует эту продолжительность в общее количество наносекунд, представленное как long.

Если эта продолжительность слишком велика, чтобы уместиться в long наносекундах, то генерируется исключение.

Returns:
общее количество наносекунд длительности
Throws:
ArithmeticException - если произошел переполнение числовых значений

toDaysPart

public long toDaysPart()
Извлекает количество дней в продолжительности.

Возвращает общее количество дней в продолжительности, разделив количество секунд на 86400. Это основано на стандартном определении дня как 24 часов.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

API Note:
Этот метод ведет себя точно так же, как toDays().
Returns:
количество дней в продолжительности, может быть отрицательным
Since:
9

toHoursPart

public int toHoursPart()
Извлекает количество часов в продолжительности.

Возвращает оставшиеся часы при делении toHours() на количество часов в сутках. Это основано на стандартном определении дня как 24 часов.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
количество часов в продолжительности, может быть отрицательным
Since:
9

toMinutesPart

public int toMinutesPart()
Извлекает количество минут в продолжительности.

Возвращает оставшиеся минуты при делении toMinutes() на количество минут в часе. Это основано на стандартном определении часа как 60 минут.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
количество минут в продолжительности, может быть отрицательным
Since:
9

toSecondsPart

public int toSecondsPart()
Извлекает количество секунд в продолжительности.

Возвращает оставшиеся секунды при делении toSeconds() на количество секунд в минуте. Это основано на стандартном определении минуты как 60 секунд.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
количество секунд в продолжительности, может быть отрицательным
Since:
9

toMillisPart

public int toMillisPart()
Извлекает количество миллисекунд в продолжительности.

Возвращает количество миллисекунд, разделив количество наносекунд на 1 000 000. Длительность хранится с использованием двух полей - секунд и наносекунд. Часть наносекунд — значение от 0 до 999 999 999, представляющее корректировку длительности в секундах. Общая продолжительность определяется вызовом getNano() и getSeconds().

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
количество миллисекунд в продолжительности.
Since:
9

toNanosPart

public int toNanosPart()
Получает часть наносекунд в секундах продолжительности.

Длительность хранится с использованием двух полей - секунд и наносекунд. Часть наносекунд — значение от 0 до 999 999 999, представляющее корректировку длительности в секундах. Общая продолжительность определяется вызовом getNano() и getSeconds().

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Returns:
наносекунды в целой части секунд продолжительности, от 0 до 999 999 999
Since:
9

truncatedTo

public Duration truncatedTo(TemporalUnit unit)
Возвращает копию этой Duration, усеченную до указанного единицы измерения.

Усечение продолжительности возвращает копию оригинала с концептуальными полями, меньшими, чем указанная единица измерения, установленные в ноль. Например, усечение с помощью единицы измерения MINUTES округлится вниз к ближайшей минуте, установив секунды и наносекунды в ноль.

Единица измерения должна иметь длительность, которая делится на длительность стандартного дня без остатка. Это включает все временные единицы измерения в ChronoUnit и DAYS. Другие ChronoUnits вызывают исключение.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Parameters:
unit - единица измерения для усечения, не null
Returns:
копия Duration, основанная на этой продолжительности с усечённым временем, не null
Throws:
DateTimeException - если единица измерения недопустима для усечения
UnsupportedTemporalTypeException - если единица измерения не поддерживается
Since:
9

compareTo

public int compareTo(Duration otherDuration)
Сравнивает эту продолжительность с указанной Duration.

Сравнение основано на общей длительности продолжительностей. Оно «согласуется с equals», как определено в Comparable.

Specified by:
compareTo в интерфейсе Comparable<Duration>
Parameters:
otherDuration - другая продолжительность для сравнения, не null
Returns:
значение компаратора, которое меньше нуля, если эта продолжительность меньше otherDuration, ноль, если они равны, больше нуля, если эта продолжительность больше otherDuration

equals

public boolean equals(Object other)
Проверяет, равна ли эта длительность заданной Duration.

Сравнение основано на общей длительности периодов.

Overrides:
equals в классе Object
Parameters:
other - другая длительность, null возвращает false
Returns:
true, если другая длительность равна этой
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код для этой длительности.
Overrides:
hashCode в классе Object
Returns:
подходящий хеш-код
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Строковое представление этой длительности с использованием ISO-8601, основанное на секундах, например, PT8H6M12.345S.

Формат возвращаемой строки будет PTnHnMnS, где n — соответствующая часть длительности в часах, минутах или секундах. Любые дробные секунды помещаются после десятичной точки в разделе секунд. Если значение раздела равно нулю, оно пропускается. Часы, минуты и секунды будут иметь одинаковый знак.

Примеры:

    "20.345 seconds"                 -- "PT20.345S
    "15 minutes" (15 * 60 seconds)   -- "PT15M"
    "10 hours" (10 * 3600 seconds)   -- "PT10H"
    "2 days" (2 * 86400 seconds)     -- "PT48H"
 
Обратите внимание, что кратные 24 часам не выводятся как дни, чтобы избежать путаницы с Period.
Overrides:
toString в классе Object
Returns:
представление этой длительности в формате ISO-8601, не null

© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/Duration.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API