Класс 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 для обсуждения значения секунды и временных масштабов.

Это бессвязанный класс; использование операций, чувствительных к идентификатору (включая равенство ссылок (==), код хэша по идентификатору или синхронизацию) на экземплярах Duration может привести к непредсказуемым результатам и следует избегать. Для сравнений следует использовать метод equals.

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

Поля

Модификатор и тип Поле Описание
static Duration ZERO

Постоянная для продолжительности ноль.

Методы

Модификатор и тип Метод Описание
Duration abs()

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

Temporal addTo​(Temporal temporal)

Добавляет этот интервал времени к указанному временнóму объекту.

static Duration between​(Temporal startInclusive, Temporal endExclusive)

Получает Duration, представляющий интервал времени между двумя временнóвыми объектами.

int compareTo​(Duration otherDuration)

Сравнивает этот интервал времени с указанным Duration.

Duration dividedBy​(long divisor)

Возвращает копию этого интервала времени, делённого на указанное значение.

long dividedBy​(Duration divisor)

Возвращает количество целых кратных интервалов времени (Duration), помещающихся в этот интервал времени.

boolean equals​(Object otherDuration)

Проверяет, равен ли этот интервал времени указанному 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 - количество дней, положительное или отрицательное
Возвращает:
a Duration, не null
Исключение:
ArithmeticException - если входные дни превышают емкость Duration

ofHours

public static Duration ofHours(long hours)

Получает Duration , представляющий количество стандартных часов.

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

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

ofMinutes

public static Duration ofMinutes(long minutes)

Получает Duration , представляющий количество стандартных минут.

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

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

ofSeconds

public static Duration ofSeconds(long seconds)

Получает Duration , представляющий количество секунд.

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

Параметры:
seconds - количество секунд, положительное или отрицательное
Возвращает:
a 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 - корректировка наносекунд к количеству секунд, положительная или отрицательная
Возвращает:
a Duration, не null
Исключение:
ArithmeticException - если корректировка приводит к тому, что секунды превышают емкость Duration

ofMillis

public static Duration ofMillis(long millis)

Получает Duration , представляющий количество миллисекунд.

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

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

ofNanos

public static Duration ofNanos(long nanos)

Получает Duration , представляющий количество наносекунд.

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

Параметры:
nanos - количество наносекунд, положительное или отрицательное
Возвращает:
a 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
Возвращает:
a 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
Возвращает:
a Duration, не null
Исключение:
DateTimeException - если секунды между временными интервалами не могут быть получены
ArithmeticException - если вычисление превышает емкость Duration

get

public long get(TemporalUnit unit)

Возвращает значение запрошенной единицы.

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

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

getUnits

public List<TemporalUnit> getUnits()

Получает набор единиц, поддерживаемых этой длительностью.

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

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

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

isZero

public boolean isZero()

Проверяет, равна ли эта длительность нулю.

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

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

isNegative

public boolean isNegative()

Проверяет, является ли эта длительность отрицательной, исключая ноль.

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

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

getSeconds

public long getSeconds()

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

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

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

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

getNano

public int getNano()

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

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

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

Returns:
наносекунды в секундах длительности, от 0 до 999 999 999

withSeconds

public Duration withSeconds(long seconds)

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

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

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

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

withNanos

public Duration withNanos(int nanoOfSecond)

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

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

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

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

plus

public Duration plus(Duration duration)

Возвращает копию этой длительности с добавленной указанной длительностью.

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

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

plus

public Duration plus(long amountToAdd,
                     TemporalUnit unit)

Возвращает копию этой длительности с добавленной указанной длительностью.

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

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

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

plusDays

public Duration plusDays(long daysToAdd)

Возвращает копию этой длительности с добавленной указанной длительностью в стандартных 24-часовых днях.

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

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

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

plusHours

public Duration plusHours(long hoursToAdd)

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

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

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

plusMinutes

public Duration plusMinutes(long minutesToAdd)

Возвращает копию этой длительности с добавленной указанной длительностью в минутах.

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

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

plusSeconds

public Duration plusSeconds(long secondsToAdd)

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

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

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

plusMillis

public Duration plusMillis(long millisToAdd)

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

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

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

plusNanos

public Duration plusNanos(long nanosToAdd)

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

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

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

minus

public Duration minus(Duration duration)

Возвращает копию этой длительности с вычтенной указанной длительностью.

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

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

minus

public Duration minus(long amountToSubtract,
                      TemporalUnit unit)

Возвращает копию этой длительности с вычтенной указанной длительностью.

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

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

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

minusDays

public Duration minusDays(long daysToSubtract)

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

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

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

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

minusHours

public Duration minusHours(long hoursToSubtract)

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

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

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

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

minusMinutes

public Duration minusMinutes(long minutesToSubtract)

Возвращает копию этого интервала времени, из которого вычтено указанное количество минут.

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

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

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

minusSeconds

public Duration minusSeconds(long secondsToSubtract)

Возвращает копию этого интервала времени, из которого вычтено указанное количество секунд.

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

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

minusMillis

public Duration minusMillis(long millisToSubtract)

Возвращает копию этого интервала времени, из которого вычтено указанное количество миллисекунд.

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

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

minusNanos

public Duration minusNanos(long nanosToSubtract)

Возвращает копию этого интервала времени, из которого вычтено указанное количество наносекунд.

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

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

multipliedBy

public Duration multipliedBy(long multiplicand)

Возвращает копию этого интервала времени, умноженного на скаляр.

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

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

dividedBy

public Duration dividedBy(long divisor)

Возвращает копию этого интервала времени, деленного на указанное значение.

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

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

abs

public Duration abs()

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

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

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

Returns:
экземпляр Duration на основе этого интервала времени с абсолютной длиной, не 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 в интерфейсе 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 в интерфейсе 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 часов.

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

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 секунд.

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

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

Единица измерения должна иметь длительность, которая делится на длительность стандартного дня без остатка. Это включает все временные единицы на {@code ChronoUnit} и DAYS. Другие ChronoUnits вызывают исключение.

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

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

compareTo

public int compareTo(Duration otherDuration)

Сравнивает эту продолжительность с указанной Duration.

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

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

equals

public boolean equals(Object otherDuration)

Проверяет, равна ли эта продолжительность указанной Duration.

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

Переопределяет:
equals в классе Object
Параметры:
otherDuration - другая продолжительность, 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, 2020, 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/11/docs/api/java.base/java/time/Duration.html

Spec-Zone .ru
спецификации, руководства, описания, API