Spec-Zone.ru › OpenJDK 21

Класс 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. Модель представляет собой направленную продолжительность, то есть продолжительность может быть отрицательной.

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

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

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

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

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

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

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

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

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

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

ZERO

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

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

ofDays

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

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

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

ofHours

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

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

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

ofMinutes

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

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

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

ofSeconds

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

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

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

ofSeconds

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

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

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

ofMillis

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

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

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

ofNanos

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

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

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

of

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

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

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

from

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

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

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

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

parse

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

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

Строка начинается с необязательного знака, обозначенного ASCII символом минус или плюс. Если отрицательно, весь период инвертируется. Следующая за этим ASCII буква "P" в верхнем или нижнем регистре. Затем идут четыре раздела, каждый из которых состоит из числа и суффикса. Разделы имеют суффиксы в ASCII "D", "H", "M" и "S" для дней, часов, минут и секунд, которые принимаются в верхнем или нижнем регистре. Суффиксы должны идти в порядке. Буква "T" 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 , для которого возвращается значение
Возвращает:
длинное значение единицы
Исключения:
DateTimeException - если единица не поддерживается
UnsupportedTemporalTypeException - если единица не поддерживается

getUnits

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

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

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

Specified by:
getUnits in interface TemporalAmount
Returns:
список, содержащий единицы измерения секунд и наносекунд, не null

isPositive

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

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

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

isZero

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

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

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

isNegative

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

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

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

getSeconds

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

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

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

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

getNano

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

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

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

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

withSeconds

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

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

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

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

withNanos

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

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

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

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

plus

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

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

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

plus

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

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

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

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

plusDays

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

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

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

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

plusHours

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

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

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

plusMinutes

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

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

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

plusSeconds

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

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

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

plusMillis

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

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

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

plusNanos

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

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

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

minus

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

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

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

minus

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

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

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

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

minusDays

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

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

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

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

minusHours

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

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

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

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

minusMinutes

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

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

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

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

minusSeconds

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

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

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

minusMillis

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

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

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

minusNanos

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

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

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

multipliedBy

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

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

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

dividedBy

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

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

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

dividedBy

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

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

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

negated

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

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

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

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

abs

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

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

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

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

addTo

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

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

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

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

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

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

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

subtractFrom

public Temporal subtractFrom(Temporal temporal)
Вычитает этот интервал времени из указанного объекта временной шкалы.

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

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

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

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

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

Specified by:
subtractFrom in interface 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.

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

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

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 unit приведет к округлению вниз к ближайшей минуте, установив секунды и наносекунды в ноль.

Единица измерения должна иметь duration, которая делится на длительность стандартного дня без остатка. Это включает все временные единицы в 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(java.lang.Object)

toString

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

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

Примеры:

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

© 1993, 2023, 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/21/docs/api/java.base/java/time/Duration.html

Spec-Zone.ru

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