Класс Duration
- Все реализуемые интерфейсы:
Serializable, Comparable<Duration>, TemporalAmount
public final class Duration extends Object implements TemporalAmount, Comparable<Duration>, Serializable
Этот класс представляет количество времени в секундах и наносекундах. Его можно получать в других единицах измерения длительности, например в минутах и часах. Кроме того, можно использовать единицу DAYS, которая считается в точности равной 24 часам и, таким образом, не учитывает переходы на летнее время. Эквивалент этого класса для дат представлен классом Period.
Физическая длительность может быть бесконечной. Для практических целей длительность хранится с ограничениями, аналогичными ограничениям Instant. Точность длительности составляет одну наносекунду, а максимальное значение количества секунд — это максимальное значение, которое может храниться в long. Оно превышает текущую оценку возраста Вселенной.
Для хранения диапазона длительности требуется число, превышающее размер long. Для этого класс хранит long, представляющий секунды, и int, представляющий наносекунды в пределах секунды, значение которого всегда находится в диапазоне от 0 до 999 999 999. Модель представляет собой направленную длительность, то есть длительность может быть отрицательной.
Длительность измеряется в «секундах», которые не обязательно совпадают с научным определением «секунды СИ», основанным на атомных часах. Это различие влияет только на длительности, измеренные около високосной секунды, и не должно затрагивать большинство приложений. Обсуждение значения секунды и шкал времени см. в описании Instant.
Этот класс является классом, основанным на значениях; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в будущей версии синхронизация может перестать работать. Для сравнения следует использовать метод equals.
- Требования к реализации:
- Этот класс является неизменяемым и потокобезопасным.
- Начиная с версии:
- 1.8
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Duration |
ZERO |
Константа для нулевой длительности. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Duration |
abs() |
Возвращает копию этой длительности с положительным значением. |
Temporal |
addTo |
Добавляет эту длительность к указанному объекту времени. |
static Duration |
between |
Получает Duration, представляющий длительность между двумя объектами времени. |
int |
compareTo |
Сравнивает эту длительность с указанным Duration. |
Duration |
dividedBy |
Возвращает копию этой длительности, разделённую на указанное значение. |
long |
dividedBy |
Возвращает количество полных раз, которое указанная Duration укладывается в эту Duration. |
boolean |
equals |
Проверяет, равна ли эта длительность указанному Duration. |
static Duration |
from |
Получает экземпляр Duration из временной величины. |
long |
get |
Возвращает значение указанной единицы измерения. |
int |
getNano() |
Возвращает количество наносекунд в пределах секунды в этой длительности. |
long |
getSeconds() |
Возвращает количество секунд в этой длительности. |
List |
getUnits() |
Возвращает набор единиц измерения, поддерживаемых этой длительностью. |
int |
hashCode() |
Хеш-код этой длительности. |
boolean |
isNegative() |
Проверяет, является ли эта длительность отрицательной, исключая нулевое значение. |
boolean |
isPositive() |
Проверяет, является ли эта длительность положительной, исключая нулевое значение. |
boolean |
isZero() |
Проверяет, равна ли эта длительность нулю. |
Duration |
minus |
Возвращает копию этой длительности, из которой вычтена указанная длительность. |
Duration |
minus |
Возвращает копию этой длительности, из которой вычтена указанная длительность. |
Duration |
minusDays |
Возвращает копию этой длительности, из которой вычтено указанное количество стандартных 24-часовых дней. |
Duration |
minusHours |
Возвращает копию этой длительности, из которой вычтено указанное количество часов. |
Duration |
minusMillis |
Возвращает копию этой длительности, из которой вычтено указанное количество миллисекунд. |
Duration |
minusMinutes |
Возвращает копию этой длительности, из которой вычтено указанное количество минут. |
Duration |
minusNanos |
Возвращает копию этой длительности, из которой вычтено указанное количество наносекунд. |
Duration |
minusSeconds |
Возвращает копию этой длительности, из которой вычтено указанное количество секунд. |
Duration |
multipliedBy |
Возвращает копию этой длительности, умноженную на скаляр. |
Duration |
negated() |
Возвращает копию этой длительности с противоположным значением. |
static Duration |
of |
Получает Duration, представляющий величину в указанной единице измерения. |
static Duration |
ofDays |
Получает Duration, представляющий количество стандартных 24-часовых дней. |
static Duration |
ofHours |
Получает Duration, представляющий количество стандартных часов. |
static Duration |
ofMillis |
Получает Duration, представляющий количество миллисекунд. |
static Duration |
ofMinutes |
Получает Duration, представляющий количество стандартных минут. |
static Duration |
ofNanos |
Получает Duration, представляющий количество наносекунд. |
static Duration |
ofSeconds |
Получает Duration, представляющий количество секунд. |
static Duration |
ofSeconds |
Получает Duration, представляющий количество секунд и поправку в наносекундах. |
static Duration |
parse |
Получает Duration из текстовой строки, например PnDTnHnMn.nS. |
Duration |
plus |
Возвращает копию этой длительности, к которой добавлена указанная длительность. |
Duration |
plus |
Возвращает копию этой длительности, к которой добавлена указанная длительность. |
Duration |
plusDays |
Возвращает копию этой длительности, к которой добавлено указанное количество стандартных 24-часовых дней. |
Duration |
plusHours |
Возвращает копию этой длительности, к которой добавлено указанное количество часов. |
Duration |
plusMillis |
Возвращает копию этой длительности, к которой добавлено указанное количество миллисекунд. |
Duration |
plusMinutes |
Возвращает копию этой длительности, к которой добавлено указанное количество минут. |
Duration |
plusNanos |
Возвращает копию этой длительности, к которой добавлено указанное количество наносекунд. |
Duration |
plusSeconds |
Возвращает копию этой длительности, к которой добавлено указанное количество секунд. |
Temporal |
subtractFrom |
Вычитает эту длительность из указанного объекта времени. |
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 |
Возвращает копию этого Duration, усечённую до указанной единицы измерения. |
Duration |
withNanos |
Возвращает копию этой длительности с указанным значением наносекунд в пределах секунды. |
Duration |
withSeconds |
Возвращает копию этой длительности с указанным количеством секунд. |
Подробное описание полей
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. Если указан минус, вся продолжительность становится отрицательной. Далее следует латинская буква «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 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. Для всех остальных единиц возникает исключение.
- Определено в:
-
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)
Количество суток умножается на 86400, чтобы получить количество добавляемых секунд. Это основано на стандартном определении суток как 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)
Количество суток умножается на 86400, чтобы получить количество вычитаемых секунд. Это основано на стандартном определении суток как 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содержится в этой 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()
Возвращает общее количество дней в длительности, деля количество секунд на 86400. Расчёт основан на стандартном определении дня как 24 часов.
Этот экземпляр неизменяем и не изменяется при вызове этого метода.
- Возвращает:
- количество дней в длительности; может быть отрицательным
toHours
public long toHours()
Возвращает общее количество часов в длительности, деля количество секунд на 3600.
Этот экземпляр неизменяем и не изменяется при вызове этого метода.
- Возвращает:
- количество часов в длительности; может быть отрицательным
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()
Возвращает общее количество дней в длительности, деля количество секунд на 86400. Расчёт основан на стандартном определении дня как 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. Сравнение основано на общей продолжительности длительностей.
hashCode
toString
public String toString()
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.
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/Duration.html