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