Класс 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 минус или плюс. Если отрицательный, вся длительность отрицается. Далее идет 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)
Количество дней умножается на 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)
Количество дней умножается на 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:
-
addToin interfaceTemporalAmount - 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. Сравнение основано на общей длительности периодов.
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/Duration.html