Spec-Zone.ru › OpenJDK 27

Класс 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 MAX
Максимальная поддерживаемая Duration: Long.MAX_VALUE секунд и 999,999,999 наносекунд.
static final Duration MIN
Минимальная поддерживаемая Duration: Long.MIN_VALUE секунд.
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)
Возвращает копию этой длительности с указанным количеством секунд.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

ZERO

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

MIN

public static final Duration MIN
Минимальное поддерживаемое значение Duration, равное Long.MIN_VALUE секундам.
Примечание к API:
Эта константа представляет наименьший возможный экземпляр Duration. Поскольку Duration имеет направленность, наименьшая возможная длительность является отрицательной. Константа предназначена для использования в качестве маркера или в тестах. При выполнении арифметических операций с MIN следует соблюдать осторожность, так как существует высокий риск возникновения исключения ArithmeticException или DateTimeException.
Начиная с версии:
26

MAX

public static final Duration MAX
Максимальное поддерживаемое значение Duration, равное Long.MAX_VALUE секундам и 999,999,999 наносекундам.
Примечание к API:
Эта константа представляет наибольший возможный экземпляр Duration. Константа предназначена для использования в качестве маркера или в тестах. При выполнении арифметических операций с MAX следует соблюдать осторожность, так как существует высокий риск возникновения исключения ArithmeticException или DateTimeException.
Начиная с версии:
26

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

ofDays

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

Количество секунд вычисляется на основе стандартного определения суток, согласно которому сутки составляют 86 400 секунд, то есть 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», после нее должна быть хотя бы одна секция. Числовая часть каждой секции должна состоять из одной или нескольких цифр 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 3,600 seconds)
   "P2D"       -- parses as "2 days" (where a day is 24 hours or 86,400 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. Для всех остальных единиц выбрасывается исключение.

Определено в:
get в интерфейсе TemporalAmount
Параметры:
unit — TemporalUnit, значение которой требуется вернуть
Возвращает:
значение единицы измерения типа long
Выбрасывает:
DateTimeException — если единица измерения не поддерживается
UnsupportedTemporalTypeException — если единица измерения не поддерживается

getUnits

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

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

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

Определено в:
getUnits в интерфейсе TemporalAmount
Возвращает:
список, содержащий единицы секунд и наносекунд, не null

isPositive

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

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

Возвращает:
true, если общая длительность больше нуля
Начиная с версии:
18

isZero

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

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

Возвращает:
true, если общая длительность равна нулю

isNegative

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

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

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

getSeconds

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

Длительность хранится в двух полях: секунды и наносекунды. Значение наносекунд находится в диапазоне от 0 до 999 999 999 и корректирует длительность в секундах. Общая длительность определяется вызовами этого метода и метода getNano().

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

Возвращает:
целая часть длительности в секундах, положительная или отрицательная

getNano

public int getNano()
Получает количество наносекунд в пределах секунды для этой длительности.

Длительность хранится в двух полях: секунды и наносекунды. Значение наносекунд находится в диапазоне от 0 до 999 999 999 и корректирует длительность в секундах. Общая длительность определяется вызовами этого метода и метода getSeconds().

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

Возвращает:
количество наносекунд в секундной части длительности, от 0 до 999 999 999

withSeconds

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

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

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

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

withNanos

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

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

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

Параметры:
nanoOfSecond — значение наносекунд в секунде, от 0 до 999 999 999
Возвращает:
Duration на основе этой длительности с заданным значением наносекунд в секунде, не null
Выбрасывает:
DateTimeException — если значение наносекунд в секунде недопустимо

plus

public Duration plus(Duration duration)
Возвращает копию этой длительности, увеличенную на указанную длительность.

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

Параметры:
duration — длительность для прибавления, положительная или отрицательная, не null
Возвращает:
Duration на основе этой длительности, увеличенной на указанную длительность, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

plus

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

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

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

Параметры:
amountToAdd — величина для прибавления, измеренная в указанной единице, положительная или отрицательная
unit — единица измерения величины; должна иметь точную длительность, не null
Возвращает:
Duration на основе этой длительности, увеличенной на указанную длительность, не null
Выбрасывает:
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при числовом переполнении

plusDays

public Duration plusDays(long daysToAdd)
Возвращает копию этой длительности, увеличенную на указанное количество стандартных суток продолжительностью 24 часа.

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

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

Параметры:
daysToAdd — количество суток для прибавления, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, увеличенной на указанное количество суток, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

plusHours

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

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

Параметры:
hoursToAdd — количество часов для прибавления, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, увеличенной на указанное количество часов, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

plusMinutes

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

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

Параметры:
minutesToAdd — количество минут для прибавления, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, увеличенной на указанное количество минут, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

plusSeconds

public Duration plusSeconds(long secondsToAdd)
Возвращает копию этой длительности, увеличенную на указанное количество секунд.

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

Параметры:
secondsToAdd — количество секунд для прибавления, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, увеличенной на указанное количество секунд, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

plusMillis

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

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

Параметры:
millisToAdd — количество миллисекунд для прибавления, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, увеличенной на указанное количество миллисекунд, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

plusNanos

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

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

Параметры:
nanosToAdd — количество наносекунд для прибавления, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, увеличенной на указанное количество наносекунд, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

minus

public Duration minus(Duration duration)
Возвращает копию этой длительности, уменьшенную на указанную длительность.

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

Параметры:
duration — длительность для вычитания, положительная или отрицательная, не null
Возвращает:
Duration на основе этой длительности, уменьшенной на указанную длительность, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

minus

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

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

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

Параметры:
amountToSubtract — величина для вычитания, измеренная в указанной единице, положительная или отрицательная
unit — единица измерения величины; должна иметь точную длительность, не null
Возвращает:
Duration на основе этой длительности, уменьшенной на указанную длительность, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

minusDays

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

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

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

Параметры:
daysToSubtract — количество суток для вычитания, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, уменьшенной на указанное количество суток, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

minusHours

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

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

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

Параметры:
hoursToSubtract — количество часов для вычитания, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, уменьшенной на указанное количество часов, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

minusMinutes

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

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

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

Параметры:
minutesToSubtract — количество минут для вычитания, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, уменьшенной на указанное количество минут, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

minusSeconds

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

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

Параметры:
secondsToSubtract — количество секунд для вычитания, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, уменьшенной на указанное количество секунд, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

minusMillis

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

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

Параметры:
millisToSubtract — количество миллисекунд для вычитания, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, уменьшенной на указанное количество миллисекунд, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

minusNanos

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

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

Параметры:
nanosToSubtract — количество наносекунд для вычитания, положительное или отрицательное
Возвращает:
Duration на основе этой длительности, уменьшенной на указанное количество наносекунд, не null
Выбрасывает:
ArithmeticException — при числовом переполнении

multipliedBy

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

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

Параметры:
multiplicand — значение, на которое умножается длительность; положительное или отрицательное
Возвращает:
Duration на основе этой длительности, умноженной на указанный скаляр; не null
Вызывает исключение:
ArithmeticException — если происходит переполнение числового значения

dividedBy

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

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

Параметры:
divisor — значение, на которое делится длительность; положительное или отрицательное, не равное нулю
Возвращает:
Duration на основе этой длительности, разделённой на указанный делитель; не null
Вызывает исключение:
ArithmeticException — если делитель равен нулю или происходит переполнение числового значения

dividedBy

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

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

Параметры:
divisor — значение, на которое делится длительность; положительное или отрицательное, не null
Возвращает:
количество целых раз, округлённое к нулю, которое указанная Duration укладывается в эту длительность; может быть отрицательным
Вызывает исключение:
ArithmeticException — если делитель равен нулю или происходит переполнение числового значения
Начиная с:
9

negated

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

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

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

Возвращает:
Duration на основе этой длительности с количеством, имеющим противоположный знак; не null
Вызывает исключение:
ArithmeticException — если происходит переполнение числового значения

abs

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

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

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

Возвращает:
Duration на основе этой длительности с абсолютным значением; не null
Вызывает исключение:
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);

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

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

Указано в:
addTo в интерфейсе TemporalAmount
Параметры:
temporal — временной объект для корректировки; не null
Возвращает:
объект того же типа с выполненной корректировкой; не null
Вызывает исключение:
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);

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

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

Указано в:
subtractFrom в интерфейсе TemporalAmount
Параметры:
temporal — временной объект для корректировки; не null
Возвращает:
объект того же типа с выполненной корректировкой; не null
Вызывает исключение:
DateTimeException — если выполнить вычитание невозможно
ArithmeticException — если происходит переполнение числового значения

toDays

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

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

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

Возвращает:
количество дней в длительности; может быть отрицательным

toHours

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

Возвращает общее количество часов в длительности, деля число секунд на 3 600.

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

Возвращает:
количество часов в длительности; может быть отрицательным

toMinutes

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

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

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

Возвращает:
количество минут в длительности; может быть отрицательным

toSeconds

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

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

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

Возвращает:
целую часть длительности в секундах; положительную или отрицательную
Начиная с:
9

toMillis

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

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

Если точность этой длительности выше миллисекундной, при преобразовании лишняя информация о точности будет отброшена, как если бы количество наносекунд было разделено на миллион целочисленным делением.

Возвращает:
общая длительность в миллисекундах
Вызывает исключение:
ArithmeticException — если происходит переполнение числового значения

toNanos

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

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

Возвращает:
общая длительность в наносекундах
Вызывает исключение:
ArithmeticException — если происходит переполнение числового значения

toDaysPart

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

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

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

Примечание по API:
Этот метод работает точно так же, как toDays().
Возвращает:
количество дней в длительности; может быть отрицательным
Начиная с:
9

toHoursPart

public int toHoursPart()
Извлекает часть длительности, выраженную в часах.

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

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

Возвращает:
часть длительности, выраженную в часах; может быть отрицательной
Начиная с:
9

toMinutesPart

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

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

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

Возвращает:
часть длительности, выраженную в минутах; может быть отрицательной
Начиная с:
9

toSecondsPart

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

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

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

Возвращает:
часть длительности, выраженную в секундах; может быть отрицательной
Начиная с:
9

toMillisPart

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

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

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

Возвращает:
часть длительности, выраженную в миллисекундах.
Начиная с:
9

toNanosPart

public int toNanosPart()
Возвращает часть длительности в наносекундах внутри секунды.

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

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

Возвращает:
количество наносекунд в секундной части длительности, от 0 до 999 999 999
Начиная с:
9

truncatedTo

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

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

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

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

Параметры:
unit — единица измерения, до которой нужно усечь значение; не null
Возвращает:
Duration на основе этой длительности с усечённым временем; не null
Вызывает исключение:
DateTimeException — если единица измерения недопустима для усечения
UnsupportedTemporalTypeException — если единица измерения не поддерживается
Начиная с:
9

compareTo

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

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

Указано в:
compareTo в интерфейсе Comparable<Duration>
Параметры:
otherDuration — другая длительность для сравнения; не null
Возвращает:
значение сравнения: меньше нуля, если эта длительность меньше otherDuration; ноль, если они равны; больше нуля, если эта длительность больше otherDuration

equals

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

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

Переопределяет:
equals в классе Object
Параметры:
other — другая длительность; null возвращает false
Возвращает:
true, если другая длительность равна этой
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код этой длительности.
Переопределяет:
hashCode в классе Object
Возвращает:
подходящий хеш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(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 * 3,600 seconds)  -- "PT10H"
   "2 days" (2 * 86,400 seconds)    -- "PT48H"
Обратите внимание: кратные 24 часам не выводятся в виде дней, чтобы избежать путаницы с Period.
Переопределяет:
toString в классе Object
Возвращает:
представление этой длительности в формате ISO-8601; не null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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