Класс 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 для обсуждения значения секунды и временных масштабов.
Это бессвязанный класс; использование операций, чувствительных к идентификатору (включая равенство ссылок (==), код хэша по идентификатору или синхронизацию) на экземплярах Duration может привести к непредсказуемым результатам и следует избегать. Для сравнений следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static Duration | ZERO | Постоянная для продолжительности ноль. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Duration | abs() | Возвращает копию этого интервала времени с положительной длительностью. |
Temporal | addTo(Temporal temporal) | Добавляет этот интервал времени к указанному временнóму объекту. |
static Duration | between(Temporal startInclusive,
Temporal endExclusive) | Получает |
int | compareTo(Duration otherDuration) | Сравнивает этот интервал времени с указанным |
Duration | dividedBy(long divisor) | Возвращает копию этого интервала времени, делённого на указанное значение. |
long | dividedBy(Duration divisor) | Возвращает количество целых кратных интервалов времени (Duration), помещающихся в этот интервал времени. |
boolean | equals(Object otherDuration) | Проверяет, равен ли этот интервал времени указанному |
static Duration | from(TemporalAmount amount) | Получает экземпляр |
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) | Получает |
static Duration | ofDays(long days) | Получает |
static Duration | ofHours(long hours) | Получает |
static Duration | ofMillis(long millis) | Получает |
static Duration | ofMinutes(long minutes) | Получает |
static Duration | ofNanos(long nanos) | Получает |
static Duration | ofSeconds(long seconds) | Получает |
static Duration | ofSeconds(long seconds,
long nanoAdjustment) | Получает |
static Duration | parse(CharSequence text) | Получает |
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() | Преобразует этот интервал времени в полную длительность в наносекундах, представленную как |
int | toNanosPart() | Получает количество наносекунд в секунде интервала времени. |
long | toSeconds() | Получает количество секунд в этом интервале времени. |
int | toSecondsPart() | Извлекает количество секунд в интервале времени. |
String | toString() | Строковое представление этого интервала времени, использующее представление ISO-8601 в секундах, например |
Duration | truncatedTo(TemporalUnit unit) | Возвращает копию этого |
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.
© 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