Класс OffsetTime
- Все реализованные интерфейсы:
-
Serializable,Comparable<OffsetTime>,Temporal,TemporalAccessor,TemporalAdjuster
public final class OffsetTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetTime>, Serializable
10:15:30+01:00. OffsetTime — это неизменяемый объект даты и времени, представляющий время, часто отображаемое как час-минута-секунда-смещение. Этот класс хранит все поля времени с точностью до наносекунд, а также смещение часового пояса. Например, значение "13:45:30.123456789+02:00" может быть сохранено в OffsetTime.
Это класс значение-базовый; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе может произойти непредсказуемое поведение. Например, в будущей версии синхронизация может завершиться неудачно. Для сравнения следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяем и потокобезопасен.
- С:
- 1.8
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final OffsetTime |
MAX |
Максимально поддерживаемое OffsetTime, '23:59:59.999999999-18:00'. |
static final OffsetTime |
MIN |
Минимально поддерживаемое OffsetTime, '00:00:00+18:00'. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal |
adjustInto |
Настраивает указанный временной объект так, чтобы у него был тот же сдвиг и время, что и у этого объекта. |
OffsetDateTime |
atDate |
Объединяет это время с датой для создания OffsetDateTime. |
int |
compareTo |
Сравнивает это OffsetTime с другим временем. |
boolean |
equals |
Проверяет, равно ли это время другому времени. |
String |
format |
Форматирует это время с использованием указанного форматировщика. |
static OffsetTime |
from |
Получает экземпляр OffsetTime из временного объекта. |
int |
get |
Получает значение указанного поля из этого времени в виде int. |
int |
getHour() |
Получает поле часа. |
long |
getLong |
Получает значение указанного поля из этого времени в виде long. |
int |
getMinute() |
Получает поле минуты. |
int |
getNano() |
Получает поле наносекунд. |
ZoneOffset |
getOffset() |
Получает смещение зоны, например '+01:00'. |
int |
getSecond() |
Получает поле секунды. |
int |
hashCode() |
Хеш-код для этого времени. |
boolean |
isAfter |
Проверяет, является ли момент времени этого OffsetTime после момента времени указанного времени, применяя оба времени к общей дате. |
boolean |
isBefore |
Проверяет, является ли момент времени этого OffsetTime до момента времени указанного времени, применяя оба времени к общей дате. |
boolean |
isEqual |
Проверяет, равен ли момент времени этого OffsetTime моменту времени указанного времени, применяя оба времени к общей дате. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
boolean |
isSupported |
Проверяет, поддерживается ли указанный период. |
OffsetTime |
minus |
Возвращает копию этого времени с вычитанием указанного значения. |
OffsetTime |
minus |
Возвращает копию этого времени с вычитанием указанного значения. |
OffsetTime |
minusHours |
Возвращает копию этого OffsetTime с вычитанием указанного количества часов. |
OffsetTime |
minusMinutes |
Возвращает копию этого OffsetTime с вычитанием указанного количества минут. |
OffsetTime |
minusNanos |
Возвращает копию этого OffsetTime с вычитанием указанного количества наносекунд. |
OffsetTime |
minusSeconds |
Возвращает копию этого OffsetTime с вычитанием указанного количества секунд. |
static OffsetTime |
now() |
Получает текущее время из системных часов в часовом поясе по умолчанию. |
static OffsetTime |
now |
Получает текущее время из указанных часов. |
static OffsetTime |
now |
Получает текущее время из системных часов в указанном часовом поясе. |
static OffsetTime |
of |
Получает экземпляр OffsetTime из часа, минуты, секунды и наносекунды. |
static OffsetTime |
of |
Получает экземпляр OffsetTime из местного времени и смещения. |
static OffsetTime |
ofInstant |
Получает экземпляр OffsetTime из Instant и идентификатора зоны. |
static OffsetTime |
parse |
Получает экземпляр OffsetTime из строкового представления, например 10:15:30+01:00. |
static OffsetTime |
parse |
Получает экземпляр OffsetTime из строкового представления с использованием определённого форматировщика. |
OffsetTime |
plus |
Возвращает копию этого времени с добавлением указанного значения. |
OffsetTime |
plus |
Возвращает копию этого времени с добавлением указанного значения. |
OffsetTime |
plusHours |
Возвращает копию этого OffsetTime с добавлением указанного количества часов. |
OffsetTime |
plusMinutes |
Возвращает копию этого OffsetTime с добавлением указанного количества минут. |
OffsetTime |
plusNanos |
Возвращает копию этого OffsetTime с добавлением указанного количества наносекунд. |
OffsetTime |
plusSeconds |
Возвращает копию этого OffsetTime с добавлением указанного количества секунд. |
<R> R |
query |
Запрашивает это время с использованием указанного запроса. |
ValueRange |
range |
Получает диапазон допустимых значений для указанного поля. |
long |
toEpochSecond |
Преобразует это OffsetTime в количество секунд, прошедших с эпохи 1970-01-01T00:00:00Z. |
LocalTime |
toLocalTime() |
Получает LocalTime часть этой даты и времени. |
String |
toString() |
Выводит это время как String, например 10:15:30+01:00. |
OffsetTime |
truncatedTo |
Возвращает копию этого OffsetTime с обнуленным временем. |
long |
until |
Вычисляет интервал времени до другого времени в указанных единицах измерения. |
OffsetTime |
with |
Возвращает скорректированную копию этого времени. |
OffsetTime |
with |
Возвращает копию этого времени с указанным полем, установленным на новое значение. |
OffsetTime |
withHour |
Возвращает копию этого OffsetTime с изменённым часом. |
OffsetTime |
withMinute |
Возвращает копию этого OffsetTime с изменённой минутой. |
OffsetTime |
withNano |
Возвращает копию этого OffsetTime с изменённой наносекундой. |
OffsetTime |
withOffsetSameInstant |
Возвращает копию этого OffsetTime с указанным смещением, гарантируя, что результат находится в тот же момент времени в предполагаемый день. |
OffsetTime |
withOffsetSameLocal |
Возвращает копию этого OffsetTime с указанным смещением, гарантируя, что результат имеет то же местное время. |
OffsetTime |
withSecond |
Возвращает копию этого OffsetTime с изменённой секундой. |
Подробное описание полей
MIN
public static final OffsetTime MIN
OffsetTime, '00:00:00+18:00'. Это время полуночи в начале дня с максимальным смещением (большие смещения означают более раннее время на временной шкале). Это объединяет LocalTime.MIN и ZoneOffset.MAX. Это может быть использовано приложением как дата «очень далёкого прошлого».MAX
public static final OffsetTime MAX
OffsetTime, '23:59:59.999999999-18:00'. Это время непосредственно перед полуночью в конце дня с минимальным смещением (большие отрицательные смещения означают более позднее время на временной шкале). Это объединяет LocalTime.MAX и ZoneOffset.MIN. Это может быть использовано приложением как дата «очень далёкого будущего».Подробное описание методов
now
public static OffsetTime now()
Это запросит system clock в часовом поясе по умолчанию, чтобы получить текущее время. Смещение будет рассчитано из часового пояса в часах.
Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, поскольку часы жестко запрограммированы.
- Возвращает:
- текущее время с использованием системных часов и часового пояса по умолчанию, не null
now
public static OffsetTime now(ZoneId zone)
Это запросит system clock, чтобы получить текущее время. Указание часового пояса предотвращает зависимость от часового пояса по умолчанию. Смещение будет рассчитано из указанного часового пояса.
Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, поскольку часы жестко запрограммированы.
- Параметры:
-
zone- идентификатор часового пояса для использования, не null - Возвращает:
- текущее время с использованием системных часов, не null
now
public static OffsetTime now(Clock clock)
Это запросит указанные часы, чтобы получить текущее время. Смещение будет рассчитано из часового пояса в часах.
Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.
- Параметры:
-
clock- используемые часы, не null - Возвращает:
- текущее время, не null
of
public static OffsetTime of(LocalTime time, ZoneOffset offset)
OffsetTime из локального времени и смещения.- Параметры:
-
time- локальное время, не null -
offset- смещение часового пояса, не null - Возвращает:
- время со смещением, не null
of
public static OffsetTime of(int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
OffsetTime из часа, минуты, секунды и наносекунды. Это создаёт время со смещением с четырьмя указанными полями.
Этот метод существует в основном для написания тестовых случаев. Вне тестового кода обычно используются другие методы для создания времени со смещением. LocalTime имеет две дополнительные удобные варианты эквивалентного фабричного метода с меньшим количеством аргументов. Они не предоставлены здесь для уменьшения footprint API.
- Параметры:
-
hour- час для представления, от 0 до 23 -
minute- минута для представления, от 0 до 59 -
second- секунда для представления, от 0 до 59 -
nanoOfSecond- наносекунда для представления, от 0 до 999 999 999 -
offset- смещение часового пояса, не null - Возвращает:
- время со смещением, не null
- Исключения:
-
DateTimeException- если значение любого поля находится вне диапазона
ofInstant
public static OffsetTime ofInstant(Instant instant, ZoneId zone)
OffsetTime из Instant и идентификатора часового пояса. Это создаёт время со смещением с тем же моментом, что и указанный. Нахождение смещения от UTC/Гринвича просто, так как существует только одно допустимое смещение для каждого момента.
Компонент даты момента отбрасывается во время преобразования. Это означает, что преобразование никогда не может завершиться неудачно из-за того, что момент находится вне допустимого диапазона дат.
- Параметры:
-
instant- момент для создания времени, не null -
zone- часовой пояс, который может быть смещением, не null - Возвращает:
- время со смещением, не null
from
public static OffsetTime from(TemporalAccessor temporal)
OffsetTime из временного объекта. Это получает время со смещением на основе указанного временного объекта. TemporalAccessor представляет собой произвольный набор информации о дате и времени, который эта фабрика преобразует в экземпляр OffsetTime.
Преобразование извлекает и объединяет ZoneOffset и LocalTime из временного объекта. Реализации разрешается выполнять оптимизации, такие как доступ к тем полям, которые эквивалентны соответствующим объектам.
Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, OffsetTime::from.
- Параметры:
-
temporal- временной объект для преобразования, не null - Возвращает:
- время со смещением, не null
- Исключения:
-
DateTimeException- если невозможно преобразовать вOffsetTime
parse
public static OffsetTime parse(CharSequence text)
OffsetTime из строкового значения, такого как 10:15:30+01:00. Строка должна представлять корректное время и анализируется с помощью DateTimeFormatter.ISO_OFFSET_TIME.
- Параметры:
-
text- текст для анализа, например, "10:15:30+01:00", не null - Возвращает:
- проанализированное локальное время, не null
- Исключения:
-
DateTimeParseException- если текст не может быть проанализирован
parse
public static OffsetTime parse(CharSequence text, DateTimeFormatter formatter)
OffsetTime из строкового значения с помощью указанного форматера. Текст анализируется с помощью форматера, возвращая время.
- Параметры:
-
text- текст для анализа, не null -
formatter- используемый форматер, не null - Возвращает:
- проанализированное время со смещением, не null
- Исключения:
-
DateTimeParseException- если текст не может быть проанализирован
isSupported
public boolean isSupported(TemporalField field)
Проверяет, можно ли запросить это время для указанного поля. Если false, то вызов методов range, get и with(TemporalField, long) вызовет исключение.
Если поле является ChronoField, то запрос реализуется здесь. Поддерживаемые поля:
-
NANO_OF_SECOND -
NANO_OF_DAY -
MICRO_OF_SECOND -
MICRO_OF_DAY -
MILLI_OF_SECOND -
MILLI_OF_DAY -
SECOND_OF_MINUTE -
SECOND_OF_DAY -
MINUTE_OF_HOUR -
MINUTE_OF_DAY -
HOUR_OF_AMPM -
CLOCK_HOUR_OF_AMPM -
HOUR_OF_DAY -
CLOCK_HOUR_OF_DAY -
AMPM_OF_DAY -
OFFSET_SECONDS
ChronoField возвращают false. Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.isSupportedBy(TemporalAccessor) передавая this в качестве аргумента. Поддерживается ли поле определяется полем.
- Определено в:
-
isSupportedв интерфейсеTemporalAccessor - Параметры:
-
field- поле для проверки, null возвращает false - Возвращает:
- true, если поле поддерживается в этом времени, false - если нет
isSupported
public boolean isSupported(TemporalUnit unit)
Проверяет, можно ли добавить или вычесть указанную единицу измерения из этого смещения времени. Если ложь, то вызов методов plus(long, TemporalUnit) и minus вызовет исключение.
Если единица измерения является ChronoUnit, то запрос обрабатывается здесь. Поддерживаемые единицы измерения:
-
NANOS -
MICROS -
MILLIS -
SECONDS -
MINUTES -
HOURS -
HALF_DAYS
ChronoUnit возвращают ложь. Если единица измерения не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.isSupportedBy(Temporal) с this в качестве аргумента. Поддерживается ли единица измерения определяется единицей измерения.
- Specified by:
-
isSupportedв интерфейсеTemporal - Parameters:
-
unit- единица измерения для проверки, null возвращает false - Returns:
- true, если единица измерения может быть добавлена/вычтена, false — в противном случае
range
public ValueRange range(TemporalField field)
Объект диапазона выражает минимальное и максимальное допустимые значения для поля. Это время используется для повышения точности возвращаемого диапазона. Если невозможно вернуть диапазон, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос обрабатывается здесь. supported fields вернет соответствующие экземпляры диапазона. Все остальные ChronoField вызовут UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.rangeRefinedBy(TemporalAccessor) с this в качестве аргумента. Возможен ли диапазон определяется полем.
- Specified by:
-
rangeв интерфейсеTemporalAccessor - Parameters:
-
field- поле для запроса диапазона, не null - Returns:
- диапазон допустимых значений для поля, не null
- Throws:
-
DateTimeException- если диапазон для поля получить невозможно -
UnsupportedTemporalTypeException- если поле не поддерживается
get
public int get(TemporalField field)
int. Запрашивает значение указанного поля у этого времени. Возвращаемое значение всегда будет в пределах допустимого диапазона значений для поля. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос обрабатывается здесь. supported fields вернет допустимые значения на основе этого времени, за исключением NANO_OF_DAY и MICRO_OF_DAY, которые слишком велики для int и вызывают UnsupportedTemporalTypeException. Все остальные ChronoField вызовут UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor) с this в качестве аргумента. Возможно ли получить значение и что оно представляет собой, определяется полем.
- Specified by:
-
getв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение для поля
- Throws:
-
DateTimeException- если значение для поля получить невозможно или значение находится вне диапазона допустимых значений для поля -
UnsupportedTemporalTypeException- если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException- если произошел переполнение при арифметических операциях
getLong
public long getLong(TemporalField field)
long. Запрашивает значение указанного поля у этого времени. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос обрабатывается здесь. supported fields вернет допустимые значения на основе этого времени. Все остальные ChronoField вызовут UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor) с this в качестве аргумента. Возможно ли получить значение и что оно представляет собой, определяется полем.
- Specified by:
-
getLongв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение для поля
- Throws:
-
DateTimeException- если значение для поля получить невозможно -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если произошел переполнение при арифметических операциях
getOffset
public ZoneOffset getOffset()
Это смещение локального времени от UTC/Гринвича.
- Returns:
- смещение часового пояса, не null
withOffsetSameLocal
public OffsetTime withOffsetSameLocal(ZoneOffset offset)
OffsetTime со смещением, гарантирующим, что результат имеет то же локальное время. Этот метод возвращает объект с тем же LocalTime и указанным ZoneOffset. Расчеты не требуются и не выполняются. Например, если это время представляет 10:30+02:00 и указанное смещение равно +03:00, то этот метод вернет 10:30+03:00.
Чтобы учесть разницу между смещениями и скорректировать поля времени, используйте withOffsetSameInstant(java.time.ZoneOffset).
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
offset- смещение часового пояса для изменения, не null - Returns:
- экземпляр
OffsetTimeна основе этого времени со запрошенным смещением, не null
withOffsetSameInstant
public OffsetTime withOffsetSameInstant(ZoneOffset offset)
OffsetTime со смещением, гарантирующим, что результат находится в то же мгновение в предполагаемый день. Этот метод возвращает объект с указанным ZoneOffset и LocalTime скорректированным на разницу между двумя смещениями. Это приведет к тому, что старые и новые объекты будут представлять то же мгновение в предполагаемый день. Это полезно для определения локального времени в другом смещении. Например, если это время представляет 10:30+02:00 и указанное смещение равно +03:00, то этот метод вернет 11:30+03:00.
Чтобы изменить смещение без корректировки локального времени, используйте withOffsetSameLocal(java.time.ZoneOffset).
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
offset- смещение часового пояса для изменения, не null - Returns:
- экземпляр
OffsetTimeна основе этого времени со запрошенным смещением, не null
toLocalTime
public LocalTime toLocalTime()
LocalTime этой даты и времени. Возвращает LocalTime с теми же часом, минутой, секундой и наносекундой, что и эта дата и время.
- Returns:
- часть времени этой даты и времени, не null
getHour
public int getHour()
- Returns:
- час, от 0 до 23
getMinute
public int getMinute()
- Returns:
- минута, от 0 до 59
getSecond
public int getSecond()
- Returns:
- секунда, от 0 до 59
getNano
public int getNano()
- Returns:
- наносекунда, от 0 до 999 999 999
с
public OffsetTime with(TemporalAdjuster adjuster)
Возвращает копию времени, скорректированную на основании этого времени. Коррекция выполняется с использованием объекта стратегии корректора. Прочтите документацию корректора, чтобы понять, какая коррекция будет выполнена.
Простой корректор может просто установить одно из полей, например, поле час. Более сложный корректор может установить время на последний час дня.
Классы LocalTime и ZoneOffset реализуют TemporalAdjuster, поэтому этот метод можно использовать для изменения времени или смещения:
result = offsetTime.with(time); result = offsetTime.with(offset);
Результат этого метода получается путем вызова метода TemporalAdjuster.adjustInto(Temporal) на указанном корректоре, передавая this в качестве аргумента.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Указано в:
-
withв интерфейсеTemporal - Параметры:
-
adjuster- используемый корректор, не null - Возвращает:
- скопированное время на основе
thisс произведенной коррекцией, не null - Выбрасывает:
-
DateTimeException- если коррекция не может быть выполнена -
ArithmeticException- если произошел численный переполнение
с
public OffsetTime with(TemporalField field, long newValue)
Возвращает копию времени, основанную на этом времени, со значением для указанного поля, изменённым. Это можно использовать для изменения любого поддерживаемого поля, такого как час, минута или секунда. Если невозможно установить значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то коррекция реализуется здесь.
Поле OFFSET_SECONDS вернёт время со заданным смещением. Локальное время не изменяется. Если новое значение смещения находится вне допустимого диапазона, будет выброшено DateTimeException.
Другие экземпляры supported fields будут вести себя так же, как соответствующий метод в LocalTime.with(TemporalField, long) LocalTime}. В этом случае смещение не входит в расчёт и останется неизменным.
Все остальные экземпляры ChronoField выбросят UnsupportedTemporalTypeException.
Если поле не является ChronoField, результат этого метода получается путем вызова TemporalField.adjustInto(Temporal, long), передавая this в качестве аргумента. В этом случае поле определяет, как и следует ли корректировать момент времени.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Указано в:
-
withв интерфейсеTemporal - Параметры:
-
field- поле, которое нужно установить в результате, не null -
newValue- новое значение поля в результате - Возвращает:
- скопированное время на основе
thisс установленным полем, не null - Выбрасывает:
-
DateTimeException- если поле не может быть установлено -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если произошел численный переполнение
withHour
public OffsetTime withHour(int hour)
Смещение не влияет на вычисление и будет таким же в результате.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
hour- час, который нужно установить в результате, от 0 до 23 - Возвращает:
- скопированное время на основе этого времени с запрошенным часом, не null
- Выбрасывает:
-
DateTimeException- если значение часа недопустимо
withMinute
public OffsetTime withMinute(int minute)
Смещение не влияет на вычисление и будет таким же в результате.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
minute- минута, которую нужно установить в результате, от 0 до 59 - Возвращает:
- скопированное время на основе этого времени с запрошенной минутой, не null
- Выбрасывает:
-
DateTimeException- если значение минуты недопустимо
withSecond
public OffsetTime withSecond(int second)
Смещение не влияет на вычисление и будет таким же в результате.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
second- секунда, которую нужно установить в результате, от 0 до 59 - Возвращает:
- скопированное время на основе этого времени с запрошенной секундой, не null
- Выбрасывает:
-
DateTimeException- если значение секунды недопустимо
withNano
public OffsetTime withNano(int nanoOfSecond)
Смещение не влияет на вычисление и будет таким же в результате.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
nanoOfSecond- наносекунда, которую нужно установить в результате, от 0 до 999999999 - Возвращает:
- скопированное время на основе этого времени с запрошенной наносекундой, не null
- Выбрасывает:
-
DateTimeException- если значение наносекунд недопустимо
truncatedTo
public OffsetTime truncatedTo(TemporalUnit unit)
Усечение возвращает копию исходного времени, где поля, меньшие указанного интервала, установлены в ноль. Например, усечение с использованием интервала minutes установит секунду и наносекунды в ноль.
Интервал должен иметь продолжительность, которая делится на длину стандартного дня без остатка. Это включает все предоставленные временные интервалы в ChronoUnit и DAYS. Другие интервалы выбросят исключение.
Смещение не влияет на вычисление и будет таким же в результате.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
unit- интервал для усечения, не null - Возвращает:
- скопированное время на основе этого времени с усечённым временем, не null
- Выбрасывает:
-
DateTimeException- если усечение невозможно -
UnsupportedTemporalTypeException- если интервал не поддерживается
plus
public OffsetTime plus(TemporalAmount amountToAdd)
Возвращает копию времени, основанную на этом времени, с добавлением указанного значения. Значение обычно является Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту значения путем вызова TemporalAmount.addTo(Temporal). Реализация значения свободна в реализации добавления любым способом, но обычно она вызывает plus(long, TemporalUnit). Проконсультируйтесь с документацией реализации значения, чтобы определить, может ли оно быть успешно добавлено.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Указано в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- значение для добавления, не null - Возвращает:
- скопированное время на основе этого времени с добавлением, не null
- Выбрасывает:
-
DateTimeException- если добавление невозможно -
ArithmeticException- если произошел численный переполнение
plus
public OffsetTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию времени, основанную на этом времени, с добавлением указанного количества единиц времени. Если невозможно добавить количество, потому что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoUnit, то добавление реализуется в LocalTime.plus(long, TemporalUnit). Смещение не учитывается в расчёте и останется неизменным в результате.
Если поле не является ChronoUnit, результат этого метода получается путем вызова TemporalUnit.addTo(Temporal, long), передавая this в качестве аргумента. В этом случае единица определяет, как и следует ли производить добавление.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Указано в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество единиц для добавления, может быть отрицательным -
unit- единица количества, не null - Возвращает:
- скопированное время на основе этого времени с добавлением, не null
- Выбрасывает:
-
DateTimeException- если добавление невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если произошел численный переполнение
plusHours
public OffsetTime plusHours(long hours)
OffsetTime с добавлением указанного количества часов. Добавляет указанное количество часов к этому времени, возвращая новое время. Вычисление переходит через полночь.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Parameters:
-
hours- количество часов для добавления, может быть отрицательным - Returns:
- новое
OffsetTime, основанное на этом времени с добавленными часами, не null
plusMinutes
public OffsetTime plusMinutes(long minutes)
OffsetTime с добавлением указанного количества минут. Добавляет указанное количество минут к этому времени, возвращая новое время. Вычисление переходит через полночь.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Parameters:
-
minutes- количество минут для добавления, может быть отрицательным - Returns:
- новое
OffsetTime, основанное на этом времени с добавленными минутами, не null
plusSeconds
public OffsetTime plusSeconds(long seconds)
OffsetTime с добавлением указанного количества секунд. Добавляет указанное количество секунд к этому времени, возвращая новое время. Вычисление переходит через полночь.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Parameters:
-
seconds- количество секунд для добавления, может быть отрицательным - Returns:
- новое
OffsetTime, основанное на этом времени с добавленными секундами, не null
plusNanos
public OffsetTime plusNanos(long nanos)
OffsetTime с добавлением указанного количества наносекунд. Добавляет указанное количество наносекунд к этому времени, возвращая новое время. Вычисление переходит через полночь.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Parameters:
-
nanos- количество наносекунд для добавления, может быть отрицательным - Returns:
- новое
OffsetTime, основанное на этом времени с добавленными наносекундами, не null
minus
public OffsetTime minus(TemporalAmount amountToSubtract)
Возвращает новое OffsetTime, основанное на этом времени, с вычитанием указанной величины. Величина обычно Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту величины, вызывая метод TemporalAmount.subtractFrom(Temporal). Реализация величины свободна реализовывать вычитание любым способом, но обычно она вызывает метод minus(long, TemporalUnit). Обратитесь к документации реализации величины, чтобы определить, возможно ли её вычесть.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Specified by:
-
minusв интерфейсеTemporal - Parameters:
-
amountToSubtract- величина для вычитания, не null - Returns:
- новое
OffsetTime, основанное на этом времени с выполненным вычитанием, не null - Throws:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если происходит переполнение чисел
minus
public OffsetTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает новое OffsetTime, основанное на этом времени, с вычитанием величины в терминах единицы. Если вычитание невозможно, потому что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Этот метод эквивалентен методу plus(long, TemporalUnit) с отрицательной величиной. Обратитесь к документации этого метода для полного описания работы сложения, а следовательно и вычитания.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Specified by:
-
minusв интерфейсеTemporal - Parameters:
-
amountToSubtract- количество единиц для вычитания из результата, может быть отрицательным -
unit- единица величины для вычитания, не null - Returns:
- новое
OffsetTime, основанное на этом времени с указанной величиной вычтенной, не null - Throws:
-
DateTimeException- если вычитание невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение чисел
minusHours
public OffsetTime minusHours(long hours)
OffsetTime с вычитанием указанного количества часов. Вычитает указанное количество часов из этого времени, возвращая новое время. Вычисление переходит через полночь.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Parameters:
-
hours- количество часов для вычитания, может быть отрицательным - Returns:
- новое
OffsetTime, основанное на этом времени с вычтенными часами, не null
minusMinutes
public OffsetTime minusMinutes(long minutes)
OffsetTime с вычитанием указанного количества минут. Вычитает указанное количество минут из этого времени, возвращая новое время. Вычисление переходит через полночь.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Parameters:
-
minutes- количество минут для вычитания, может быть отрицательным - Returns:
- новое
OffsetTime, основанное на этом времени с вычтенными минутами, не null
minusSeconds
public OffsetTime minusSeconds(long seconds)
OffsetTime с вычитанием указанного количества секунд. Вычитает указанное количество секунд из этого времени, возвращая новое время. Вычисление переходит через полночь.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Parameters:
-
seconds- количество секунд для вычитания, может быть отрицательным - Returns:
- новое
OffsetTime, основанное на этом времени с вычтенными секундами, не null
minusNanos
public OffsetTime minusNanos(long nanos)
OffsetTime с вычитанием указанного количества наносекунд. Вычитает указанное количество наносекунд из этого времени, возвращая новое время. Вычисление переходит через полночь.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Parameters:
-
nanos- количество наносекунд для вычитания, может быть отрицательным - Returns:
- новое
OffsetTime, основанное на этом времени с вычтенными наносекундами, не null
query
public <R> R query(TemporalQuery<R> query)
Запрашивает это время, используя указанный объект стратегии запроса. Объект TemporalQuery определяет логику, которая будет использоваться для получения результата. Прочитайте документацию запроса, чтобы понять, что будет результатом этого метода.
Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передавая this в качестве аргумента.
- Specified by:
-
queryв интерфейсеTemporalAccessor - Type Parameters:
-
R- тип результата - Parameters:
-
query- запрос для вызова, не null - Returns:
- результат запроса, может быть null (определяется запросом)
- Throws:
-
DateTimeException- если запрос не удается (определяется запросом) -
ArithmeticException- если происходит переполнение чисел (определяется запросом)
adjustInto
public Temporal adjustInto(Temporal temporal)
Возвращает временной объект того же наблюдаемого типа, что и входной, со смещением и временем, измененными на то же, что у этого.
Настройка эквивалентна дважды использованию Temporal.with(TemporalField, long), передавая ChronoField.NANO_OF_DAY и ChronoField.OFFSET_SECONDS в качестве полей.
В большинстве случаев, использование более понятно, используя Temporal.with(TemporalAdjuster):
// these two lines are equivalent, but the second approach is recommended temporal = thisOffsetTime.adjustInto(temporal); temporal = temporal.with(thisOffsetTime);
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Specified by:
-
adjustIntoв интерфейсеTemporalAdjuster - Parameters:
-
temporal- целевой объект для настройки, не null - Returns:
- настроенный объект, не null
- Throws:
-
DateTimeException- если настройка не может быть выполнена -
ArithmeticException- если происходит переполнение чисел
until
public long until(Temporal endExclusive, TemporalUnit unit)
Это вычисляет интервал времени между двумя OffsetTime объектами в терминах одной TemporalUnit. Начальной и конечной точками являются this и указанное время. Результат будет отрицательным, если конец находится до начала. Например, интервал в часах между двумя моментами времени можно вычислить с помощью startTime.until(endTime, HOURS).
Temporal переданный в этот метод преобразуется в OffsetTime с помощью from(TemporalAccessor). Если смещение различается между двумя моментами времени, то указанное конечное время нормализуется, чтобы иметь такое же смещение, как и это время.
Вычисление возвращает целое число, представляющее количество полных единиц между двумя моментами времени. Например, количество часов между 11:30Z и 13:29Z составит только один час, поскольку до двух часов не хватает одной минуты.
Существуют два эквивалентных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):
// these two lines are equivalent amount = start.until(end, MINUTES); amount = MINUTES.between(start, end);Выбор должен быть сделан на основе того, что делает код более удобочитаемым.
Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS и HALF_DAYS. Другие значения ChronoUnit будут вызывать исключение.
Если единица измерения не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.between(Temporal, Temporal), передавая this в качестве первого аргумента и преобразованное временное значение ввода — в качестве второго.
Этот экземпляр неизменяемый и не изменяется в результате вызова этого метода.
- Specified by:
-
untilв интерфейсеTemporal - Parameters:
-
endExclusive- конечное время, исключая его, которое преобразуется вOffsetTime, не null -
unit- единица измерения, в которой измеряется величина, не null - Returns:
- интервал времени между этим временем и конечным временем
- Throws:
-
DateTimeException- если величину невозможно вычислить или конечное временное значение невозможно преобразовать вOffsetTime -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение чисел
format
public String format(DateTimeFormatter formatter)
Это время будет передано в форматировщик для получения строки.
- Parameters:
-
formatter- используемый форматировщик, не null - Returns:
- строка отформатированного времени, не null
- Throws:
-
DateTimeException- если при печати произошла ошибка
atDate
public OffsetDateTime atDate(LocalDate date)
OffsetDateTime. Возвращает OffsetDateTime, сформированный из этого времени и указанной даты. Все возможные сочетания даты и времени допустимы.
- Parameters:
-
date- дата для объединения, не null - Returns:
- отформатированное по смещению время, сформированное из этого времени и указанной даты, не null
toEpochSecond
public long toEpochSecond(LocalDate date)
OffsetTime в количество секунд с эпохи 1970-01-01T00:00:00Z. Это объединяет это время со смещением с указанной датой для вычисления значения эпохи-секунды, которое представляет количество прошедших секунд с 1970-01-01T00:00:00Z. Моменты времени после эпохи являются положительными, раньше — отрицательными.
- Parameters:
-
date- локальная дата, не null - Returns:
- количество секунд с эпохи 1970-01-01T00:00:00Z, может быть отрицательным
- Since:
- 9
compareTo
public int compareTo(OffsetTime other)
OffsetTime с другим временем. Сравнение основано сначала на мгновенном значении UTC эквивалента, затем на местном времени. Оно «совместимо с equals», как определено в Comparable.
Например, порядок сортировки следующий:
10:30+01:0011:00+01:0012:00+02:0011:30+01:0012:00+01:0012:30+01:00
equals(). Для сравнения базового местного времени двух TemporalAccessor экземпляров используйте ChronoField.NANO_OF_DAY в качестве сравнивателя.
- Specified by:
-
compareToв интерфейсеComparable<OffsetTime> - Parameters:
-
other- другое время для сравнения, не null - Returns:
- значение сравнения, отрицательное, если меньше, положительное, если больше
isAfter
public boolean isAfter(OffsetTime other)
OffsetTime после указанного времени, применяя оба времени к одной дате. Этот метод отличается от сравнения в compareTo(java.time.OffsetTime) тем, что он сравнивает только момент времени. Это эквивалентно преобразованию обоих моментов во мгновение с использованием одной и той же даты и сравнению мгновений.
- Parameters:
-
other- другое время для сравнения, не null - Returns:
- true, если это после мгновения указанного времени
isBefore
public boolean isBefore(OffsetTime other)
OffsetTime до указанного времени, применяя оба времени к одной дате. Этот метод отличается от сравнения в compareTo(java.time.OffsetTime) тем, что он сравнивает только момент времени. Это эквивалентно преобразованию обоих моментов во мгновение с использованием одной и той же даты и сравнению мгновений.
- Parameters:
-
other- другое время для сравнения, не null - Returns:
- true, если это до мгновения указанного времени
isEqual
public boolean isEqual(OffsetTime other)
OffsetTime мгновению указанного времени, применяя оба времени к одной дате. Этот метод отличается от сравнения в compareTo(java.time.OffsetTime) и equals(java.lang.Object) тем, что сравнивает только момент времени. Это эквивалентно преобразованию обоих моментов во мгновение с использованием одной и той же даты и сравнению мгновений.
- Parameters:
-
other- другое время для сравнения, не null - Returns:
- true, если это равно мгновению указанного времени
equals
public boolean equals(Object obj)
Сравнение основано на местном времени и смещении. Для сравнения на одинаковое мгновение во времени используйте isEqual(OffsetTime).
Сравниваются только объекты типа OffsetTime, другие типы возвращают false. Для сравнения базового местного времени двух TemporalAccessor экземпляров используйте ChronoField.NANO_OF_DAY в качестве сравнивателя.
- Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект для проверки, null возвращает false - Returns:
- true, если это равно другому времени
- See Also:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Returns:
- подходящий хеш-код
- See Also:
toString
public String toString()
String, например, 10:15:30+01:00. Вывод будет одним из следующих форматов ISO-8601:
HH:mmXXXXXHH:mm:ssXXXXXHH:mm:ss.SSSXXXXXHH:mm:ss.SSSSSSXXXXXHH:mm:ss.SSSSSSSSSXXXXX
- Overrides:
-
toStringв классеObject - Returns:
- строковое представление этого времени, не 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/OffsetTime.html