Класс 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 имеет два дополнительных удобных варианта эквивалентного фабричного метода с меньшим количеством аргументов. Они здесь не предоставлены, чтобы уменьшить размер 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)
Проверяет, может ли это время быть запрошено для указанного поля. Если ложь, то вызов методов 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)
Это проверяет, можно ли добавить или вычесть указанную единицу из этого смещённого времени. Если значение false, то вызов методов plus(long, TemporalUnit) и minus вызовет исключение.
Если единица является ChronoUnit, то запрос выполняется здесь. Поддерживаемые единицы:
-
NANOS -
MICROS -
MILLIS -
SECONDS -
MINUTES -
HOURS -
HALF_DAYS
ChronoUnit вернут false. Если единица не является ChronoUnit, то результат этого метода получается вызовом TemporalUnit.isSupportedBy(Temporal), передавая this в качестве аргумента. Поддерживается ли единица, определяется самой единицей.
- Указано в:
-
isSupportedв интерфейсеTemporal - Параметры:
-
unit- единица для проверки, null возвращает false - Возвращает:
- true, если единицу можно добавить/вычесть, false — в противном случае
range
public ValueRange range(TemporalField field)
Объект диапазона выражает минимальные и максимальные допустимые значения для поля. Это время используется для повышения точности возвращаемого диапазона. Если невозможно вернуть диапазон, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос выполняется здесь. supported fields вернёт соответствующие экземпляры диапазона. Все остальные экземпляры ChronoField выбросят UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается вызовом TemporalField.rangeRefinedBy(TemporalAccessor), передавая this в качестве аргумента. Возможность получения диапазона определяется полем.
- Указано в:
-
rangeв интерфейсеTemporalAccessor - Параметры:
-
field- поле, для которого запрашивается диапазон, не null - Возвращает:
- диапазон допустимых значений для поля, не null
- Вызывает:
-
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 в качестве аргумента. Возможность получения значения и то, что представляет собой значение, определяется полем.
- Указано в:
-
getв интерфейсеTemporalAccessor - Параметры:
-
field- поле для получения, не null - Возвращает:
- значение для поля
- Вызывает:
-
DateTimeException- если значение для поля не может быть получено или значение находится за пределами диапазона допустимых значений для поля -
UnsupportedTemporalTypeException- если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException- если происходит арифметическое переполнение
getLong
public long getLong(TemporalField field)
long. Это запрашивает у этого времени значение указанного поля. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос выполняется здесь. supported fields вернёт допустимые значения на основе этого времени. Все остальные экземпляры ChronoField выбросят UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается вызовом TemporalField.getFrom(TemporalAccessor), передавая this в качестве аргумента. Возможность получения значения и то, что представляет собой значение, определяется полем.
- Указано в:
-
getLongв интерфейсеTemporalAccessor - Параметры:
-
field- поле для получения, не null - Возвращает:
- значение для поля
- Вызывает:
-
DateTimeException- если значение для поля не может быть получено -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит арифметическое переполнение
getOffset
public ZoneOffset getOffset()
Это смещение местного времени от UTC/Гринвича.
- Возвращает:
- смещение часовой зоны, не null
withOffsetSameLocal
public OffsetTime withOffsetSameLocal(ZoneOffset offset)
OffsetTime с указанным смещением, гарантируя, что результат имеет то же самое местное время. Этот метод возвращает объект с тем же LocalTime и указанным ZoneOffset. Никаких вычислений не требуется и не выполняется. Например, если это время представляет 10:30+02:00, а указанное смещение — +03:00, то этот метод вернёт 10:30+03:00.
Чтобы учесть разницу между смещениями и настроить поля времени, используйте withOffsetSameInstant(java.time.ZoneOffset).
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
offset- часовой пояс для изменения, не null - Возвращает:
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).
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
offset- часовой пояс для изменения, не null - Возвращает:
OffsetTimeна основе этого времени с запрошенным смещением, не null
toLocalTime
public LocalTime toLocalTime()
LocalTime этой даты и времени. Это возвращает LocalTime с тем же часом, минутой, секундой и наносекундой, что и эта дата и время.
- Возвращает:
- часть времени этой даты и времени, не null
getHour
public int getHour()
- Возвращает:
- час суток, от 0 до 23
getMinute
public int getMinute()
- Возвращает:
- минута часа, от 0 до 59
getSecond
public int getSecond()
- Возвращает:
- секунда минуты, от 0 до 59
getNano
public int getNano()
- Возвращает:
- наносекунда секунды, от 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 - Возвращает:
- скопированное время, основанное на текущем с произведённой корректировкой, не 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- новое значение поля в результате - Возвращает:
- скопированное время, основанное на текущем, с указанным полем, установленным, не null
- Исключения:
-
DateTimeException- если поле не может быть установлено -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числовых значений
withHour
public OffsetTime withHour(int hour)
OffsetTime с изменённым часом. Смещение не влияет на вычисления и останется прежним в результате.
Данный экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
hour- час для установки в результате, от 0 до 23 - Возвращает:
- скопированное время, основанное на текущем с запрошенным часом, не null
- Исключения:
-
DateTimeException- если значение часа некорректно
withMinute
public OffsetTime withMinute(int minute)
OffsetTime с изменённой минутой. Смещение не влияет на вычисления и останется прежним в результате.
Данный экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
minute- минута для установки в результате, от 0 до 59 - Возвращает:
- скопированное время, основанное на текущем с запрошенной минутой, не null
- Исключения:
-
DateTimeException- если значение минуты некорректно
withSecond
public OffsetTime withSecond(int second)
OffsetTime с изменённой секундой. Смещение не влияет на вычисления и останется прежним в результате.
Данный экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
second- секунда для установки в результате, от 0 до 59 - Возвращает:
- скопированное время, основанное на текущем с запрошенной секундой, не null
- Исключения:
-
DateTimeException- если значение секунды некорректно
withNano
public OffsetTime withNano(int nanoOfSecond)
OffsetTime с изменённым наносекундой. Смещение не влияет на вычисления и останется прежним в результате.
Данный экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
nanoOfSecond- наносекунда для установки в результате, от 0 до 999 999 999 - Возвращает:
- скопированное время, основанное на текущем с запрошенной наносекундой, не null
- Исключения:
-
DateTimeException- если значение наносекунд некорректно
truncatedTo
public OffsetTime truncatedTo(TemporalUnit unit)
OffsetTime с усечённым временем. Усечение возвращает копию исходного времени с полями, меньшими, чем указанный элемент, установленным в ноль. Например, усечение с помощью элемента minutes установит поле секунды и наносекунды в ноль.
Элемент должен иметь длительность, которая делится на длину стандартного дня без остатка. Это включает все предоставленные единицы времени в ChronoUnit и DAYS. Другие единицы выбрасывают исключение.
Смещение не влияет на вычисления и останется прежним в результате.
Данный экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
unit- единица для усечения, не null - Возвращает:
- скопированное время, основанное на текущем, с усечённым временем, не null
- Исключения:
-
DateTimeException- если усечение невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается
плюс
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)
Это возвращает OffsetTime, основанную на этой, со значением в единицах, добавленных к ней. Если невозможно добавить значение, потому что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoUnit, то добавление реализуется с помощью LocalTime.plus(long, TemporalUnit). Смещение не является частью расчёта и останется неизменным в результате.
Если поле не является ChronoUnit, то результат этого метода получается путём вызова TemporalUnit.addTo(Temporal, long), передав this в качестве аргумента. В этом случае единица определяет, как и нужно ли выполнять добавление.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Specified by:
-
plusв интерфейсеTemporal - Parameters:
-
amountToAdd- количество единиц для добавления к результату, может быть отрицательным -
unit- единица количества для добавления, не null - Returns:
OffsetTime, основанная на этом времени с добавленным указанным значением, не null- Throws:
-
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
запрос
public <R> R query(TemporalQuery<R> query)
Это запрашивает это время, используя указанный объект стратегии запроса. Объект TemporalQuery определяет логику, используемую для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.
Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передав this в качестве аргумента.
- Указано:
-
queryв интерфейсеTemporalAccessor - Параметры типа:
R- тип результата- Параметры:
-
query- запрос для вызова, не null - Возвращает:
- результат запроса, может быть null (определяется запросом)
- Исключения:
-
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);
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Указано:
-
adjustIntoв интерфейсеTemporalAdjuster - Параметры:
-
temporal- целевой объект для настройки, не null - Возвращает:
- отрегулированный объект, не null
- Исключения:
-
DateTimeException- если настройка не удается -
ArithmeticException- если происходит переполнение числовых значений
до
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 в качестве первого аргумента и преобразованный входной временной объект — в качестве второго аргумента.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Указано:
-
untilв интерфейсеTemporal - Параметры:
-
endExclusive- конечное время, исключающее, которое преобразуется вOffsetTime, не null -
unit- единица измерения для измерения интервала, не null - Возвращает:
- временной интервал между этим временем и конечным временем
- Исключения:
-
DateTimeException- если интервал не может быть вычислен, или конечный временной объект не может быть преобразован вOffsetTime -
UnsupportedTemporalTypeException- если единица измерения не поддерживается -
ArithmeticException- если происходит переполнение числовых значений
форматировать
public String format(DateTimeFormatter formatter)
Это время будет передано в форматер для получения строки.
- Параметры:
-
formatter- используемый форматер, не null - Возвращает:
- отформатированная строка времени, не null
- Исключения:
-
DateTimeException- если произошла ошибка при печати
atDate
public OffsetDateTime atDate(LocalDate date)
OffsetDateTime. Возвращает OffsetDateTime, образованный из этого времени и указанной даты. Все возможные сочетания даты и времени допустимы.
- Параметры:
-
date- дата для объединения, не null - Возвращает:
OffsetDateTime, образованный из этого времени и указанной даты, не null
toEpochSecond
public long toEpochSecond(LocalDate date)
OffsetTime в количество секунд с эпохи 1970-01-01T00:00:00Z. Это объединяет это смещенное время с указанной датой, чтобы вычислить значение эпохи-секунд, которое является количеством прошедших секунд с 1970-01-01T00:00:00Z. Моменты времени после эпохи положительные, раньше — отрицательные.
- Параметры:
-
date- локальная дата, не null - Возвращает:
- количество секунд с эпохи 1970-01-01T00:00:00Z, может быть отрицательным
- С:
- 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 в качестве сравнителя.
- Указано:
-
compareToв интерфейсеComparable<OffsetTime> - Параметры:
-
other- другое время для сравнения, не null - Возвращает:
- значение сравнения, т.е. сравнение эквивалентного UTC-момента
other, если они не равны, и если эквивалентный UTC-моментotherравен, сравнение этого локального времени сotherлокальным временем - См. также:
isAfter
public boolean isAfter(OffsetTime other)
OffsetTime после момента времени указанного времени, применяя оба времени к общей дате. Этот метод отличается от сравнения в compareTo(java.time.OffsetTime) тем, что сравнивает только момент времени. Это эквивалентно преобразованию обоих времен в момент времени, используя ту же дату, и сравнение моментов времени.
- Параметры:
-
other- другое время для сравнения, не null - Возвращает:
- true, если это время находится после момента времени указанного времени
isBefore
public boolean isBefore(OffsetTime other)
OffsetTime перед моментом времени указанного времени, применяя оба времени к общей дате. Этот метод отличается от сравнения в compareTo(java.time.OffsetTime) тем, что сравнивает только момент времени. Это эквивалентно преобразованию обоих времен в момент времени, используя ту же дату, и сравнение моментов времени.
- Параметры:
-
other- другое время для сравнения, не null - Возвращает:
- 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 в качестве компаратора.
hashCode
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
© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/OffsetTime.html