Класс Duration
- Все реализуемые интерфейсы:
-
Serializable,Comparable<Duration>,TemporalAmount
public final class Duration extends Object implements TemporalAmount, Comparable<Duration>, Serializable
Этот класс моделирует количество времени в секундах и наносекундах. К нему можно получить доступ, используя другие единицы измерения продолжительности, такие как минуты и часы. Кроме того, можно использовать единицу DAYS, которая рассматривается как точно равняющаяся 24 часам, игнорируя при этом переходы на летнее время. См. Period для эквивалента этого класса, основанного на датах.
Физическая продолжительность может быть бесконечной. Для практических целей продолжительность хранится с ограничениями, аналогичными ограничениям Instant. Продолжительность использует наносекундное разрешение с максимальным значением секунд, которое может хранить long. Это больше, чем текущая оценка возраста Вселенной.
Диапазон продолжительности требует хранения числа, большего, чем long. Для этого класс хранит long, представляющее секунды, и int, представляющее наносекунды секунды, которое всегда будет находиться в пределах от 0 до 999 999 999. Модель представляет собой направленную продолжительность, то есть продолжительность может быть отрицательной.
Продолжительность измеряется в "секундах", но они не обязательно идентичны научному определению "SI секунды", основанному на атомных часах. Это различие затрагивает только продолжительности, измеренные вблизи високосной секунды, и не должно влиять на большинство приложений. См. Instant для обсуждения значения секунды и временных масштабов.
Это значение-основанный класс; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе могут возникнуть непредсказуемые поведения. Например, в будущих выпусках синхронизация может не работать. Для сравнения следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Duration |
ZERO |
Постоянная для продолжительности ноль. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Duration |
abs() |
Возвращает копию этого интервала времени с положительной длительностью. |
Temporal |
addTo |
Добавляет этот интервал времени к указанному временнному объекту. |
static Duration |
between |
Получает Duration , представляющий интервал времени между двумя временными объектами. |
int |
compareTo |
Сравнивает этот интервал времени с указанным Duration. |
Duration |
dividedBy |
Возвращает копию этого интервала времени, делённого на указанное значение. |
long |
dividedBy |
Возвращает количество полных раз указанного интервала времени, содержащегося в этом интервале времени. |
boolean |
equals |
Проверяет, равен ли этот интервал времени указанному Duration. |
static Duration |
from |
Получает экземпляр Duration из временного значения. |
long |
get |
Получает значение запрошенного единицы измерения. |
int |
getNano() |
Получает количество наносекунд в секунде в этом интервале времени. |
long |
getSeconds() |
Получает количество секунд в этом интервале времени. |
List |
getUnits() |
Получает набор единиц измерения, поддерживаемых этим интервалом времени. |
int |
hashCode() |
Хэш-код для этого интервала времени. |
boolean |
isNegative() |
Проверяет, является ли этот интервал времени отрицательным, исключая ноль. |
boolean |
isPositive() |
Проверяет, является ли этот интервал времени положительным, исключая ноль. |
boolean |
isZero() |
Проверяет, имеет ли этот интервал времени длину ноль. |
Duration |
minus |
Возвращает копию этого интервала времени с вычтенным указанным интервалом времени. |
Duration |
minus |
Возвращает копию этого интервала времени с вычтенным указанным интервалом времени. |
Duration |
minusDays |
Возвращает копию этого интервала времени с вычтенным указанным интервалом времени в стандартных днях по 24 часа. |
Duration |
minusHours |
Возвращает копию этого интервала времени с вычтенным указанным интервалом времени в часах. |
Duration |
minusMillis |
Возвращает копию этого интервала времени с вычтенным указанным интервалом времени в миллисекундах. |
Duration |
minusMinutes |
Возвращает копию этого интервала времени с вычтенным указанным интервалом времени в минутах. |
Duration |
minusNanos |
Возвращает копию этого интервала времени с вычтенным указанным интервалом времени в наносекундах. |
Duration |
minusSeconds |
Возвращает копию этого интервала времени с вычтенным указанным интервалом времени в секундах. |
Duration |
multipliedBy |
Возвращает копию этого интервала времени, умноженного на скаляр. |
Duration |
negated() |
Возвращает копию этого интервала времени с отрицательной длительностью. |
static Duration |
of |
Получает Duration , представляющий количество в указанной единице измерения. |
static Duration |
ofDays |
Получает Duration , представляющий количество стандартных дней по 24 часа. |
static Duration |
ofHours |
Получает Duration , представляющий количество стандартных часов. |
static Duration |
ofMillis |
Получает Duration , представляющий количество миллисекунд. |
static Duration |
ofMinutes |
Получает Duration , представляющий количество стандартных минут. |
static Duration |
ofNanos |
Получает Duration , представляющий количество наносекунд. |
static Duration |
ofSeconds |
Получает Duration , представляющий количество секунд. |
static Duration |
ofSeconds |
Получает Duration , представляющий количество секунд и корректировку в наносекундах. |
static Duration |
parse |
Получает Duration из текстовой строки, такой как PnDTnHnMn.nS. |
Duration |
plus |
Возвращает копию этого интервала времени с добавленным указанным интервалом времени. |
Duration |
plus |
Возвращает копию этого интервала времени с добавленным указанным интервалом времени. |
Duration |
plusDays |
Возвращает копию этого интервала времени с добавленным указанным интервалом времени в стандартных днях по 24 часа. |
Duration |
plusHours |
Возвращает копию этого интервала времени с добавленным указанным интервалом времени в часах. |
Duration |
plusMillis |
Возвращает копию этого интервала времени с добавленным указанным интервалом времени в миллисекундах. |
Duration |
plusMinutes |
Возвращает копию этого интервала времени с добавленным указанным интервалом времени в минутах. |
Duration |
plusNanos |
Возвращает копию этого интервала времени с добавленным указанным интервалом времени в наносекундах. |
Duration |
plusSeconds |
Возвращает копию этого интервала времени с добавленным указанным интервалом времени в секундах. |
Temporal |
subtractFrom |
Вычитает этот интервал времени из указанного временного объекта. |
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 |
Возвращает копию этого Duration , усечённую до указанной единицы измерения. |
Duration |
withNanos |
Возвращает копию этого интервала времени с указанным значением наносекунд. |
Duration |
withSeconds |
Возвращает копию этого интервала времени с указанным количеством секунд. |
Подробное описание полей
ZERO
public static final Duration ZERO
Подробное описание методов
ofDays
public static Duration ofDays(long days)
Duration, представляющий количество стандартных 24-часовых дней. Секунды рассчитываются на основе стандартного определения дня, где каждый день составляет 86400 секунд, что подразумевает 24-часовой день. Наносекунды в поле секунд установлены в ноль.
- Параметры:
-
days- количество дней, положительное или отрицательное - Возвращает:
Duration, не null- Исключения:
-
ArithmeticException- если введенное количество дней превышает емкостьDuration
ofHours
public static Duration ofHours(long hours)
Duration , представляющий количество стандартных часов. Секунды рассчитываются на основе стандартного определения часа, где каждый час составляет 3600 секунд. Наносекунды в поле секунд установлены в ноль.
- Параметры:
-
hours- количество часов, положительное или отрицательное - Возвращает:
Duration, не null- Исключения:
-
ArithmeticException- если введенное количество часов превышает емкостьDuration
ofMinutes
public static Duration ofMinutes(long minutes)
Duration , представляющий количество стандартных минут. Секунды рассчитываются на основе стандартного определения минуты, где каждая минута составляет 60 секунд. Наносекунды в поле секунд установлены в ноль.
- Параметры:
-
minutes- количество минут, положительное или отрицательное - Возвращает:
Duration, не null- Исключения:
-
ArithmeticException- если введенное количество минут превышает емкостьDuration
ofSeconds
public static Duration ofSeconds(long seconds)
Duration , представляющий количество секунд. Наносекунды в поле секунд установлены в ноль.
- Параметры:
-
seconds- количество секунд, положительное или отрицательное - Возвращает:
Duration, не null
ofSeconds
public static Duration ofSeconds(long seconds, long nanoAdjustment)
Duration , представляющий количество секунд и корректировку в наносекундах. Этот метод позволяет передавать произвольное количество наносекунд. Фабрика изменит значения секунд и наносекунд, чтобы гарантировать, что хранящиеся наносекунды находятся в диапазоне от 0 до 999 999 999. Например, следующее приведет к точно такой же продолжительности:
Duration.ofSeconds(3, 1); Duration.ofSeconds(4, -999_999_999); Duration.ofSeconds(2, 1000_000_001);
- Параметры:
-
seconds- количество секунд, положительное или отрицательное -
nanoAdjustment- корректировка наносекунд к количеству секунд, положительная или отрицательная - Возвращает:
Duration, не null- Исключения:
-
ArithmeticException- если корректировка приводит к превышению емкостиDuration
ofMillis
public static Duration ofMillis(long millis)
Duration , представляющий количество миллисекунд. Секунды и наносекунды извлекаются из указанных миллисекунд.
- Параметры:
-
millis- количество миллисекунд, положительное или отрицательное - Возвращает:
Duration, не null
ofNanos
public static Duration ofNanos(long nanos)
Duration , представляющий количество наносекунд. Секунды и наносекунды извлекаются из указанных наносекунд.
- Параметры:
-
nanos- количество наносекунд, положительное или отрицательное - Возвращает:
Duration, не null
of
public static Duration of(long amount, TemporalUnit unit)
Duration , представляющий количество в указанном единице измерения. Параметры представляют две части фразы, например, "6 часов". Например:
Duration.of(3, SECONDS); Duration.of(465, HOURS);Только подмножество единиц принимается этим методом. Единица должна либо иметь точную продолжительность, либо быть
ChronoUnit.DAYS, которая обрабатывается как 24 часа. Другие единицы вызывают исключение.- Параметры:
-
amount- количество продолжительности, измеряемое в единицах, положительное или отрицательное -
unit- единица измерения продолжительности, должна иметь точную продолжительность, не null - Возвращает:
Duration, не null- Исключения:
-
DateTimeException- если единица периода имеет оцененную продолжительность -
ArithmeticException- если происходит переполнение числовых значений
from
public static Duration from(TemporalAmount amount)
Duration из временного количества. Это получает продолжительность на основе указанного количества. TemporalAmount представляет количество времени, которое может быть основано на дате или времени, которое эта фабрика извлекает в продолжительность.
Преобразование циклически проходит по набору единиц из количества и использует продолжительность единицы для расчета общего Duration. Только подмножество единиц принимается этим методом. Единица должна либо иметь точную продолжительность, либо быть ChronoUnit.DAYS, которая обрабатывается как 24 часа. Если обнаружены какие-либо другие единицы, то выбрасывается исключение.
- Параметры:
-
amount- временное количество для преобразования, не null - Возвращает:
- эквивалентную продолжительность, не null
- Исключения:
-
DateTimeException- если невозможно преобразовать вDuration -
ArithmeticException- если происходит переполнение числовых значений
parse
public static Duration parse(CharSequence text)
Duration из текстовой строки, такой как PnDTnHnMn.nS. Это позволит проанализировать текстовое представление продолжительности, включая строку, созданную toString(). Принятые форматы основаны на формате продолжительности ISO-8601 PnDTnHnMn.nS с днями, рассматриваемыми как ровно 24 часа.
Строка начинается с необязательного знака, обозначенного ASCII символом минус или плюс. Если отрицательно, весь период инвертируется. Следующая за этим ASCII буква "P" в верхнем или нижнем регистре. Затем идут четыре раздела, каждый из которых состоит из числа и суффикса. Разделы имеют суффиксы в ASCII "D", "H", "M" и "S" для дней, часов, минут и секунд, которые принимаются в верхнем или нижнем регистре. Суффиксы должны идти в порядке. Буква "T" ASCII должна идти перед первым появлением, если есть, раздела часа, минуты или секунды. По крайней мере, один из четырех разделов должен быть присутствующим, и если "T" присутствует, то должно быть по крайней мере один раздел после "T". Часть числа каждого раздела должна состоять из одной или нескольких ASCII цифр. Число может быть префиксным символом ASCII минус или плюс. Количество дней, часов и минут должны парсить в long. Количество секунд должно парсить в long с необязательной дробной частью. Дробная точка может быть точкой или запятой. Дробная часть может иметь от нуля до 9 цифр.
Ведущий знак плюс/минус и отрицательные значения для других единиц не являются частью стандарта ISO-8601.
Примеры:
"PT20.345S" -- parses as "20.345 seconds"
"PT15M" -- parses as "15 minutes" (where a minute is 60 seconds)
"PT10H" -- parses as "10 hours" (where an hour is 3600 seconds)
"P2D" -- parses as "2 days" (where a day is 24 hours or 86400 seconds)
"P2DT3H4M" -- parses as "2 days, 3 hours and 4 minutes"
"PT-6H3M" -- parses as "-6 hours and +3 minutes"
"-PT6H3M" -- parses as "-6 hours and -3 minutes"
"-PT-6H+3M" -- parses as "+6 hours and -3 minutes"
- Параметры:
-
text- текст для разбора, не null - Возвращает:
- проанализированная продолжительность, не null
- Исключения:
-
DateTimeParseException- если текст не может быть проанализирован до продолжительности
between
public static Duration between(Temporal startInclusive, Temporal endExclusive)
Duration , представляющий продолжительность между двумя временными объектами. Этот метод вычисляет продолжительность между двумя временными объектами. Если объекты имеют разные типы, то продолжительность рассчитывается на основе типа первого объекта. Например, если первый аргумент является LocalTime , то второй аргумент преобразуется в LocalTime .
Указанные временные объекты должны поддерживать единицу SECONDS. Для большей точности должна быть поддерживаема единица NANOS или поле NANO_OF_SECOND.
Результат этого метода может быть отрицательным периодом, если конец предшествует началу. Чтобы гарантировать получение положительной продолжительности, вызовите abs() на результате.
- Параметры:
-
startInclusive- начальный момент, включительно, не null -
endExclusive- конечный момент, исключительно, не null - Возвращает:
Duration, не null- Исключения:
-
DateTimeException- если секунды между временными объектами получить невозможно -
ArithmeticException- если вычисление превышает емкостьDuration
get
public long get(TemporalUnit unit)
Возвращает значение для каждой из двух поддерживаемых единиц, SECONDS и NANOS. Все остальные единицы вызывают исключение.
- Задано:
-
getв интерфейсеTemporalAmount - Параметры:
-
unit-TemporalUnit, для которого возвращается значение - Возвращает:
- длинное значение единицы
- Исключения:
-
DateTimeException- если единица не поддерживается -
UnsupportedTemporalTypeException- если единица не поддерживается
getUnits
public List<TemporalUnit> getUnits()
Поддерживаемые единицы — SECONDS и NANOS. Они возвращаются в порядке секунды, наносекунды.
Этот набор можно использовать совместно с get(TemporalUnit) для доступа ко всему состоянию продолжительности.
- Specified by:
-
getUnitsin interfaceTemporalAmount - Returns:
- список, содержащий единицы измерения секунд и наносекунд, не null
isPositive
public boolean isPositive()
Duration представляет собой направленное расстояние между двумя точками на временной шкале и, следовательно, может быть положительным, нулевым или отрицательным. Этот метод проверяет, является ли длина больше нуля.
- Returns:
- true, если эта продолжительность имеет общую длину, большую нуля
- Since:
- 18
isZero
public boolean isZero()
Duration представляет собой направленное расстояние между двумя точками на временной шкале и, следовательно, может быть положительным, нулевым или отрицательным. Этот метод проверяет, равна ли длина нулю.
- Returns:
- true, если эта продолжительность имеет общую длину, равную нулю
isNegative
public boolean isNegative()
Duration представляет собой направленное расстояние между двумя точками на временной шкале и, следовательно, может быть положительным, нулевым или отрицательным. Этот метод проверяет, является ли длина меньше нуля.
- Returns:
- true, если эта продолжительность имеет общую длину, меньшую нуля
getSeconds
public long getSeconds()
Длина продолжительности хранится с использованием двух полей — секунд и наносекунд. Часть наносекунд — это значение от 0 до 999 999 999, которое является корректировкой длины в секундах. Общая продолжительность определяется вызовом этого метода и getNano().
Duration представляет собой направленное расстояние между двумя точками на временной шкале. Отрицательная продолжительность выражается с помощью знака минус в части секунд. Продолжительность -1 наносекунды хранится как -1 секунда плюс 999 999 999 наносекунд.
- Returns:
- целая часть секунд длительности продолжительности, положительная или отрицательная
getNano
public int getNano()
Длина продолжительности хранится с использованием двух полей — секунд и наносекунд. Часть наносекунд — это значение от 0 до 999 999 999, которое является корректировкой длины в секундах. Общая продолжительность определяется вызовом этого метода и getSeconds().
Duration представляет собой направленное расстояние между двумя точками на временной шкале. Отрицательная продолжительность выражается с помощью знака минус в части секунд. Продолжительность -1 наносекунды хранится как -1 секунда плюс 999 999 999 наносекунд.
- Returns:
- наносекунды в части секунды длительности продолжительности, от 0 до 999 999 999
withSeconds
public Duration withSeconds(long seconds)
Возвращает продолжительность с указанными секундами, сохраняя часть наносекунд этой продолжительности.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
seconds- секунды для представления, могут быть отрицательными - Returns:
Durationна основе этого периода с запрошенными секундами, не null
withNanos
public Duration withNanos(int nanoOfSecond)
Возвращает продолжительность с указанной наносекундой, сохраняя часть секунд этой продолжительности.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
nanoOfSecond- наносекунда для представления, от 0 до 999 999 999 - Returns:
Durationна основе этого периода с запрошенной наносекундой, не null- Throws:
-
DateTimeException- если наносекунда недопустима
plus
public Duration plus(Duration duration)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
duration- продолжительность для добавления, положительная или отрицательная, не null - Returns:
Durationна основе этой продолжительности с добавленной указанной продолжительностью, не null- Throws:
-
ArithmeticException- если происходит переполнение чисел
plus
public Duration plus(long amountToAdd, TemporalUnit unit)
Величина продолжительности измеряется в терминах указанной единицы. Только подмножество единиц принимается этим методом. Единица должна иметь точную продолжительность или быть ChronoUnit.DAYS, которая обрабатывается как 24 часа. Другие единицы вызывают исключение.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
amountToAdd- значение для добавления, измеренное в терминах единицы, положительное или отрицательное -
unit- единица, в которой измеряется значение, должна иметь точную продолжительность, не null - Returns:
Durationна основе этой продолжительности с добавленной указанной продолжительностью, не null- Throws:
-
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение чисел
plusDays
public Duration plusDays(long daysToAdd)
Количество дней умножается на 86400, чтобы получить количество секунд для добавления. Это основано на стандартном определении дня как 24 часов.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
daysToAdd- дни для добавления, положительные или отрицательные - Returns:
Durationна основе этой продолжительности с добавленными указанными днями, не null- Throws:
-
ArithmeticException- если происходит переполнение чисел
plusHours
public Duration plusHours(long hoursToAdd)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
hoursToAdd- часы для добавления, положительные или отрицательные - Returns:
Durationна основе этой продолжительности с добавленными указанными часами, не null- Throws:
-
ArithmeticException- если происходит переполнение чисел
plusMinutes
public Duration plusMinutes(long minutesToAdd)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
minutesToAdd- минуты для добавления, положительные или отрицательные - Returns:
Durationна основе этой продолжительности с добавленными указанными минутами, не null- Throws:
-
ArithmeticException- если происходит переполнение чисел
plusSeconds
public Duration plusSeconds(long secondsToAdd)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
secondsToAdd- секунды для добавления, положительные или отрицательные - Returns:
Durationна основе этой продолжительности с добавленными указанными секундами, не null- Throws:
-
ArithmeticException- если происходит переполнение чисел
plusMillis
public Duration plusMillis(long millisToAdd)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
millisToAdd- миллисекунды для добавления, положительные или отрицательные - Returns:
Durationна основе этой продолжительности с добавленными указанными миллисекундами, не null- Throws:
-
ArithmeticException- если происходит переполнение чисел
plusNanos
public Duration plusNanos(long nanosToAdd)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
nanosToAdd- наносекунды для добавления, положительные или отрицательные - Returns:
Durationна основе этой продолжительности с добавленными указанными наносекундами, не null- Throws:
-
ArithmeticException- если происходит переполнение чисел
minus
public Duration minus(Duration duration)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
duration- продолжительность для вычитания, положительная или отрицательная, не null - Returns:
Durationна основе этой продолжительности с вычтенной указанной продолжительностью, не null- Throws:
-
ArithmeticException- если происходит переполнение чисел
minus
public Duration minus(long amountToSubtract, TemporalUnit unit)
Величина интервала времени измеряется в указанной единице измерения. Этот метод принимает только подмножество единиц измерения. Единица измерения должна либо иметь точную продолжительность, либо быть ChronoUnit.DAYS, которая интерпретируется как 24 часа. Другие единицы измерения вызывают исключение.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
amountToSubtract- величина для вычитания, измеряемая в единицах измерения, положительная или отрицательная -
unit- единица измерения, в которой измеряется величина, должна иметь точную продолжительность, не null - Returns:
- новый интервал времени, основанный на этом интервале времени с вычтенным указанным интервалом времени, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
minusDays
public Duration minusDays(long daysToSubtract)
Количество дней умножается на 86400 для получения количества секунд для вычитания. Это основано на стандартном определении дня как 24 часов.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
daysToSubtract- количество дней для вычитания, положительное или отрицательное - Returns:
- новый интервал времени, основанный на этом интервале времени с вычтенными указанными днями, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
minusHours
public Duration minusHours(long hoursToSubtract)
Количество часов умножается на 3600 для получения количества секунд для вычитания.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
hoursToSubtract- количество часов для вычитания, положительное или отрицательное - Returns:
- новый интервал времени, основанный на этом интервале времени с вычтенными указанными часами, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
minusMinutes
public Duration minusMinutes(long minutesToSubtract)
Количество минут умножается на 60 для получения количества секунд для вычитания.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
minutesToSubtract- количество минут для вычитания, положительное или отрицательное - Returns:
- новый интервал времени, основанный на этом интервале времени с вычтенными указанными минутами, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
minusSeconds
public Duration minusSeconds(long secondsToSubtract)
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
secondsToSubtract- количество секунд для вычитания, положительное или отрицательное - Returns:
- новый интервал времени, основанный на этом интервале времени с вычтенными указанными секундами, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
minusMillis
public Duration minusMillis(long millisToSubtract)
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
millisToSubtract- количество миллисекунд для вычитания, положительное или отрицательное - Returns:
- новый интервал времени, основанный на этом интервале времени с вычтенными указанными миллисекундами, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
minusNanos
public Duration minusNanos(long nanosToSubtract)
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
nanosToSubtract- количество наносекунд для вычитания, положительное или отрицательное - Returns:
- новый интервал времени, основанный на этом интервале времени с вычтенными указанными наносекундами, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
multipliedBy
public Duration multipliedBy(long multiplicand)
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
multiplicand- значение для умножения интервала времени на него, положительное или отрицательное - Returns:
- новый интервал времени, основанный на этом интервале времени, умноженном на указанный скаляр, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
dividedBy
public Duration dividedBy(long divisor)
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
divisor- значение для деления интервала времени на него, положительное или отрицательное, не ноль - Returns:
- новый интервал времени, основанный на этом интервале времени, деленном на указанный делитель, не null
- Throws:
-
ArithmeticException- если делитель равен нулю или если возникает переполнение числовых данных
dividedBy
public long dividedBy(Duration divisor)
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Parameters:
-
divisor- значение для деления интервала времени на него, положительное или отрицательное, не null - Returns:
- количество полных интервалов, округляемое до ближайшего целого числа к нулю, заданной продолжительности, входящей в этот интервал времени, может быть отрицательным
- Throws:
-
ArithmeticException- если делитель равен нулю или если возникает переполнение числовых данных - Since:
- 9
negated
public Duration negated()
Этот метод меняет знак общей длительности этого интервала времени. Например, PT1.3S вернет PT-1.3S.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Returns:
- новый интервал времени, основанный на этом интервале времени с измененным знаком, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
abs
public Duration abs()
Этот метод возвращает положительный интервал времени, фактически удаляя знак из любой отрицательной общей длительности. Например, PT-1.3S вернет PT1.3S.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Returns:
- новый интервал времени, основанный на этом интервале времени с абсолютной длительностью, не null
- Throws:
-
ArithmeticException- если возникает переполнение числовых данных
addTo
public Temporal addTo(Temporal temporal)
Это возвращает объект временной шкалы того же типа, что и входной, с добавленным интервалом времени.
В большинстве случаев более понятнее использовать обратный порядок вызова, используя Temporal.plus(TemporalAmount).
// these two lines are equivalent, but the second approach is recommended dateTime = thisDuration.addTo(dateTime); dateTime = dateTime.plus(thisDuration);
Вычисление добавит секунды, затем наносекунды. Будут добавлены только ненулевые значения.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Specified by:
-
addToin interfaceTemporalAmount - 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:
-
subtractFromin interfaceTemporalAmount - Parameters:
-
temporal- объект временной шкалы для корректировки, не null - Returns:
- объект того же типа с внесенной корректировкой, не null
- Throws:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если возникает переполнение числовых данных
toDays
public long toDays()
Это возвращает общее количество дней в интервале времени, разделив количество секунд на 86400. Это основано на стандартном определении дня как 24 часов.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Returns:
- количество дней в интервале времени, может быть отрицательным
toHours
public long toHours()
Это возвращает общее количество часов в интервале времени, разделив количество секунд на 3600.
Этот экземпляр неизменяемый и не изменяется в результате этого вызова метода.
- Returns:
- количество часов в интервале времени, может быть отрицательным
toMinutes
public long toMinutes()
Возвращает общее количество минут в интервале времени, разделив количество секунд на 60.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Возвращает:
- количество минут в интервале времени, может быть отрицательным
toSeconds
public long toSeconds()
Возвращает общее количество целых секунд в интервале времени.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Возвращает:
- целая часть секунд длительности интервала, положительная или отрицательная
- С:
- 9
toMillis
public long toMillis()
Если этот интервал времени слишком большой, чтобы поместиться в long миллисекундах, то выбрасывается исключение.
Если этот интервал времени имеет точность больше, чем миллисекунды, то при преобразовании любая избыточная информация о точности будет отброшена так, как будто количество наносекунд было подвергнуто целочисленному делению на один миллион.
- Возвращает:
- общая длительность интервала времени в миллисекундах
- Исключения:
-
ArithmeticException- если произошел численный переполнение
toNanos
public long toNanos()
long. Если этот интервал времени слишком большой, чтобы поместиться в long наносекундах, то выбрасывается исключение.
- Возвращает:
- общая длительность интервала времени в наносекундах
- Исключения:
-
ArithmeticException- если произошел численный переполнение
toDaysPart
public long toDaysPart()
Возвращает общее количество дней в интервале времени, разделив количество секунд на 86400. Основано на стандартном определении дня как 24 часов.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Замечание API:
- Этот метод ведет себя точно так же, как
toDays(). - Возвращает:
- количество дней в интервале времени, может быть отрицательным
- С:
- 9
toHoursPart
public int toHoursPart()
Возвращает количество оставшихся часов при делении toHours() на количество часов в сутках. Основано на стандартном определении дня как 24 часов.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Возвращает:
- количество часов в интервале времени, может быть отрицательным
- С:
- 9
toMinutesPart
public int toMinutesPart()
Возвращает количество оставшихся минут при делении toMinutes() на количество минут в часе. Основано на стандартном определении часа как 60 минут.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Возвращает:
- количество минут в интервале времени, может быть отрицательным
- С:
- 9
toSecondsPart
public int toSecondsPart()
Возвращает оставшиеся секунды при делении toSeconds() на количество секунд в минуте. Основано на стандартном определении минуты как 60 секунд.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Возвращает:
- количество секунд в интервале времени, может быть отрицательным
- С:
- 9
toMillisPart
public int toMillisPart()
Возвращает количество миллисекунд, разделив количество наносекунд на 1 000 000. Длина интервала времени хранится с использованием двух полей — секунд и наносекунд. Часть наносекунд — это значение от 0 до 999 999 999, которое является корректировкой длины в секундах. Общая длительность определяется вызовом getNano() и getSeconds().
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Возвращает:
- количество миллисекунд в интервале времени.
- С:
- 9
toNanosPart
public int toNanosPart()
Длина интервала времени хранится с использованием двух полей — секунд и наносекунд. Часть наносекунд — это значение от 0 до 999 999 999, которое является корректировкой длины в секундах. Общая длительность определяется вызовом getNano() и getSeconds().
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Возвращает:
- наносекунды в части секунд длины интервала, от 0 до 999 999 999
- С:
- 9
truncatedTo
public Duration truncatedTo(TemporalUnit unit)
Duration, усеченную до указанного единицы измерения. Усечение интервала времени возвращает копию оригинала с концептуальными полями, меньшими, чем указанная единица, установленные в ноль. Например, усечение с использованием MINUTES unit приведет к округлению вниз к ближайшей минуте, установив секунды и наносекунды в ноль.
Единица измерения должна иметь duration, которая делится на длительность стандартного дня без остатка. Это включает все временные единицы в ChronoUnit и DAYS. Другие ChronoUnits вызывают исключение.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
unit- единица измерения для усечения, не null - Возвращает:
- копия
Durationна основе этого интервала времени с усечённым временем, не null - Исключения:
-
DateTimeException- если единица измерения недопустима для усечения -
UnsupportedTemporalTypeException- если единица измерения не поддерживается - С:
- 9
compareTo
public int compareTo(Duration otherDuration)
Duration. Сравнение основано на общей длительности интервалов времени. Оно «совместимо с equals», как определено в Comparable.
- Задано:
-
compareToв интерфейсеComparable<Duration> - Параметры:
-
otherDuration- другой интервал времени для сравнения, не null - Возвращает:
- значение сравнения, которое меньше нуля, если этот интервал времени меньше
otherDuration, ноль, если они равны, больше нуля, если этот интервал времени большеotherDuration
equals
public boolean equals(Object other)
Duration. Сравнение основано на общей длительности интервалов времени.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
other- другой интервал времени, null возвращает false - Возвращает:
- true, если другой интервал времени равен этому
- См. также:
hashCode
public int hashCode()
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- подходящий код хэширования
- См. также:
toString
public String toString()
PT8H6M12.345S. Формат возвращаемой строки будет PTnHnMnS, где n — соответствующая часть часов, минут или секунд интервала времени. Любые дробные секунды размещаются после десятичной точки в разделе секунд. Если раздел имеет значение ноль, он опускается. Часы, минуты и секунды будут иметь одинаковый знак.
Примеры:
"20.345 seconds" -- "PT20.345S
"15 minutes" (15 * 60 seconds) -- "PT15M"
"10 hours" (10 * 3600 seconds) -- "PT10H"
"2 days" (2 * 86400 seconds) -- "PT48H"
Обратите внимание, что кратные 24 часам не выводятся как дни, чтобы избежать путаницы с Period.- Переопределяет:
-
toStringв классеObject - Возвращает:
- представление ISO-8601 этого интервала времени, не null
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/Duration.html