Spec-Zone.ru › OpenJDK 17

Класс Duration

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

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

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

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

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

Это класс value-based; программисты должны рассматривать экземпляры, которые являются равными, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, так как это может привести к непредсказуемому поведению. Например, в будущем выпуске синхронизация может быть нарушена. Для сравнения следует использовать метод 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 isZero()
Проверяет, имеет ли этот интервал времени нулевую длительность.
Duration minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого интервала времени, из которого вычтен указанный интервал времени.
Duration minus(Duration duration)
Возвращает копию этого интервала времени, из которого вычтен указанный интервал времени.
Duration minusDays(long daysToSubtract)
Возвращает копию этого интервала времени, из которого вычтен указанный интервал времени в стандартных днях по 24 часа.
Duration minusHours(long hoursToSubtract)
Возвращает копию этого интервала времени, из которого вычтен указанный интервал времени в часах.
Duration minusMillis(long millisToSubtract)
Возвращает копию этого интервала времени, из которого вычтен указанный интервал времени в миллисекундах.
Duration minusMinutes(long minutesToSubtract)
Возвращает копию этого интервала времени, из которого вычтен указанный интервал времени в минутах.
Duration minusNanos(long nanosToSubtract)
Возвращает копию этого интервала времени, из которого вычтен указанный интервал времени в наносекундах.
Duration minusSeconds(long secondsToSubtract)
Возвращает копию этого интервала времени, из которого вычтен указанный интервал времени в секундах.
Duration multipliedBy(long multiplicand)
Возвращает копию этого интервала времени, умноженную на скаляр.
Duration negated()
Возвращает копию этого интервала времени с отрицательной длительностью.
static Duration of(long amount, TemporalUnit unit)
Получает Duration , представляющий величину в указанной единице измерения.
static Duration ofDays(long days)
Получает Duration , представляющий количество стандартных дней по 24 часа.
static Duration ofHours(long hours)
Получает Duration , представляющий количество стандартных часов.
static Duration ofMillis(long millis)
Получает Duration , представляющий количество миллисекунд.
static Duration ofMinutes(long minutes)
Получает Duration , представляющий количество стандартных минут.
static Duration ofNanos(long nanos)
Получает Duration , представляющий количество наносекунд.
static Duration ofSeconds(long seconds)
Получает Duration , представляющий количество секунд.
static Duration ofSeconds(long seconds, long nanoAdjustment)
Получает Duration , представляющий количество секунд и корректировку в наносекундах.
static Duration parse(CharSequence text)
Получает Duration из текстовой строки, такой как PnDTnHnMn.nS.
Duration plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого интервала времени, к которому добавлен указанный интервал времени.
Duration plus(Duration duration)
Возвращает копию этого интервала времени, к которому добавлен указанный интервал времени.
Duration plusDays(long daysToAdd)
Возвращает копию этого интервала времени, к которому добавлен указанный интервал времени в стандартных днях по 24 часа.
Duration plusHours(long hoursToAdd)
Возвращает копию этого интервала времени, к которому добавлен указанный интервал времени в часах.
Duration plusMillis(long millisToAdd)
Возвращает копию этого интервала времени, к которому добавлен указанный интервал времени в миллисекундах.
Duration plusMinutes(long minutesToAdd)
Возвращает копию этого интервала времени, к которому добавлен указанный интервал времени в минутах.
Duration plusNanos(long nanosToAdd)
Возвращает копию этого интервала времени, к которому добавлен указанный интервал времени в наносекундах.
Duration plusSeconds(long secondsToAdd)
Возвращает копию этого интервала времени, к которому добавлен указанный интервал времени в секундах.
Temporal subtractFrom(Temporal temporal)
Вычитает этот интервал времени из указанного временного объекта.
long toDays()
Получает количество дней в этом интервале времени.
long toDaysPart()
Извлекает количество дней в интервале времени.
long toHours()
Получает количество часов в этом интервале времени.
int toHoursPart()
Извлекает количество часов в интервале времени.
long toMillis()
Преобразует этот интервал времени в общую длительность в миллисекундах.
int toMillisPart()
Извлекает количество миллисекунд в интервале времени.
long toMinutes()
Получает количество минут в этом интервале времени.
int toMinutesPart()
Извлекает количество минут в интервале времени.
long toNanos()
Преобразует этот интервал времени в общую длительность в наносекундах, выраженной как long.
int toNanosPart()
Получить наносекунды в секунде интервала времени.
long toSeconds()
Получает количество секунд в этом интервале времени.
int toSecondsPart()
Извлекает количество секунд в интервале времени.
String toString()
Строковое представление этого интервала времени с использованием ISO-8601, основанное на секундах, например PT8H6M12.345S.
Duration truncatedTo(TemporalUnit unit)
Возвращает копию этого Duration , усечённую до указанной единицы измерения.
Duration withNanos(int nanoOfSecond)
Возвращает копию этого интервала времени с указанным значением наносекунд.
Duration withSeconds(long seconds)
Возвращает копию этого интервала времени с указанным количеством секунд.

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

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

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

ZERO

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

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

ofDays

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

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

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

ofHours

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

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

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

ofMinutes

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

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

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

ofSeconds

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

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

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

ofSeconds

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

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

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

ofMillis

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

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

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

ofNanos

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

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

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

of

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

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

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

from

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

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

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

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

parse

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

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

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

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

Примеры:

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

between

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

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

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

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

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

get

public long get(TemporalUnit unit)
Получает значение запрашиваемой единицы.

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

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

getUnits

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

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

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

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

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 - если произошел переполнение численного типа

minus

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

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

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

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

minusDays

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

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

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

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

minusHours

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

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

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

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

minusMinutes

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

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

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

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

minusSeconds

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

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

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

minusMillis

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

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

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

minusNanos

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

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

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

multipliedBy

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

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

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

dividedBy

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

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

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

dividedBy

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

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

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

negated

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

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

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

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

abs

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

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

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

Возвращает:
a 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 часов.

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

Возвращает:
количество дней в интервале, может быть отрицательным
С тех пор как:
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.

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

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

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, 2021, 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/17/docs/api/java.base/java/time/Duration.html

Spec-Zone.ru

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