Класс 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) Возвращает копию этого времени, разделенную на указанное значение. |
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(Duration duration) Возвращает копию этого времени с вычетом указанного времени. |
Duration |
minus(long amountToSubtract,
TemporalUnit unit) Возвращает копию этого времени с вычетом указанного времени. |
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(Duration duration) Возвращает копию этого времени, к которому добавлено указанное время. |
Duration |
plus(long amountToAdd,
TemporalUnit unit) Возвращает копию этого времени, к которому добавлено указанное время. |
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 |
toHours() Получает количество часов в этом времени. |
long |
toMillis() Преобразует это время в общую длительность в миллисекундах. |
long |
toMinutes() Получает количество минут в этом времени. |
long |
toNanos() Преобразует это время в полную длительность в наносекундах, представленную как |
String |
toString() Строковое представление этого времени с использованием ISO-8601, например |
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"
"P-6H3M" -- parses as "-6 hours and +3 minutes"
"-P6H3M" -- parses as "-6 hours and -3 minutes"
"-P-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()
Проверяет, имеет ли эта продолжительность нулевую длину.
A 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, чтобы получить количество секунд для вычитания.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
hoursToSubtract- количество часов для вычитания, положительное или отрицательное - Возвращает:
- объект
Durationна основе этого интервала времени с вычтенными часами, не null - Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
minusMinutes
public Duration minusMinutes(long minutesToSubtract)
Возвращает копию этого интервала времени с вычтенным указанным интервалом в минутах.
Количество часов умножается на 60 для получения количества секунд для вычитания.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
minutesToSubtract- количество минут для вычитания, положительное или отрицательное - Возвращает:
- объект
Durationна основе этого интервала времени с вычтенными минутами, не null - Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
minusSeconds
public Duration minusSeconds(long secondsToSubtract)
Возвращает копию этого интервала времени с вычтенным указанным интервалом в секундах.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
secondsToSubtract- количество секунд для вычитания, положительное или отрицательное - Возвращает:
- объект
Durationна основе этого интервала времени с вычтенными секундами, не null - Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
minusMillis
public Duration minusMillis(long millisToSubtract)
Возвращает копию этого интервала времени с вычтенным указанным интервалом в миллисекундах.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
millisToSubtract- количество миллисекунд для вычитания, положительное или отрицательное - Возвращает:
- объект
Durationна основе этого интервала времени с вычтенными миллисекундами, не null - Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
minusNanos
public Duration minusNanos(long nanosToSubtract)
Возвращает копию этого интервала времени с вычтенным указанным интервалом в наносекундах.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
nanosToSubtract- количество наносекунд для вычитания, положительное или отрицательное - Возвращает:
- объект
Durationна основе этого интервала времени с вычтенными наносекундами, не null - Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
multipliedBy
public Duration multipliedBy(long multiplicand)
Возвращает копию этого интервала времени, умноженного на скаляр.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
multiplicand- значение для умножения интервала времени на него, положительное или отрицательное - Возвращает:
- объект
Durationна основе этого интервала времени, умноженного на указанный скаляр, не null - Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
dividedBy
public Duration dividedBy(long divisor)
Возвращает копию этого интервала времени, деленного на указанное значение.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
divisor- значение для деления интервала времени на него, положительное или отрицательное, не ноль - Возвращает:
- объект
Durationна основе этого интервала времени, деленного на указанный делитель, не null - Выбрасывает:
-
ArithmeticException- если делитель равен нулю или если происходит переполнение числовых значений
negated
public Duration negated()
Возвращает копию этого интервала времени с обратным знаком длительности.
Этот метод меняет знак общей длительности этого интервала времени. Например, PT1.3S вернет PT-1.3S.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Возвращает:
- объект
Durationна основе этого интервала времени с измененным знаком, не null - Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
abs
public Duration abs()
Возвращает копию этого интервала времени с положительной длиной.
Этот метод возвращает положительный интервал времени, эффективно удаляя знак из любого отрицательного значения общей длительности. Например, PT-1.3S вернёт PT1.3S.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Возвращает:
- объект
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.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Возвращает:
- количество минут в интервале времени, может быть отрицательным
toMillis
public long toMillis()
Преобразует этот интервал времени в общую длительность в миллисекундах.
Если этот интервал времени слишком большой, чтобы поместиться в long миллисекунд, то генерируется исключение.
Если этот интервал времени имеет точность, большую чем миллисекунды, то преобразование отбросит любые избыточные сведения о точности так, как если бы количество наносекунд подверглось целочисленному делению на один миллион.
- Возвращает:
- общую длительность интервала времени в миллисекундах
- Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
toNanos
public long toNanos()
Преобразует этот интервал времени в общую длительность в наносекундах, представленную как long.
Если этот интервал времени слишком большой, чтобы поместиться в long наносекунд, то генерируется исключение.
- Возвращает:
- общую длительность интервала времени в наносекундах
- Выбрасывает:
-
ArithmeticException- если происходит переполнение числовых значений
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.