Spec-Zone.ru › OpenJDK 25

Класс OffsetTime

java.lang.Object
java.time.OffsetTime
Все реализуемые интерфейсы:
Serializable, Comparable<OffsetTime>, Temporal, TemporalAccessor, TemporalAdjuster
public final class OffsetTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetTime>, Serializable
Время со смещением относительно UTC/Гринвича в календарной системе ISO-8601, например 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(Temporal temporal)
Изменяет указанный временной объект так, чтобы его смещение и время совпадали с этим объектом.
OffsetDateTime atDate(LocalDate date)
Объединяет это время с датой, создавая OffsetDateTime.
int compareTo(OffsetTime other)
Сравнивает этот OffsetTime с другим временем.
boolean equals(Object obj)
Проверяет, совпадает ли это время с другим временем.
String format(DateTimeFormatter formatter)
Форматирует это время с помощью указанного форматировщика.
static OffsetTime from(TemporalAccessor temporal)
Получает экземпляр OffsetTime из временного объекта.
int get(TemporalField field)
Возвращает значение указанного поля этого времени в виде int.
int getHour()
Возвращает значение поля «час дня».
long getLong(TemporalField field)
Возвращает значение указанного поля этого времени в виде long.
int getMinute()
Возвращает значение поля «минута часа».
int getNano()
Возвращает значение поля «наносекунда секунды».
ZoneOffset getOffset()
Возвращает смещение часового пояса, например '+01:00'.
int getSecond()
Возвращает значение поля «секунда минуты».
int hashCode()
Хеш-код этого времени.
boolean isAfter(OffsetTime other)
Проверяет, наступает ли момент времени этого OffsetTime позже момента времени, заданного указанным временем, если применить оба времени к одной дате.
boolean isBefore(OffsetTime other)
Проверяет, наступает ли момент времени этого OffsetTime раньше момента времени, заданного указанным временем, если применить оба времени к одной дате.
boolean isEqual(OffsetTime other)
Проверяет, совпадает ли момент времени этого OffsetTime с моментом времени, заданным указанным временем, если применить оба времени к одной дате.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.
OffsetTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого времени с вычтенным указанным значением.
OffsetTime minus(TemporalAmount amountToSubtract)
Возвращает копию этого времени с вычтенным указанным значением.
OffsetTime minusHours(long hours)
Возвращает копию этого OffsetTime, уменьшенную на указанное количество часов.
OffsetTime minusMinutes(long minutes)
Возвращает копию этого OffsetTime, уменьшенную на указанное количество минут.
OffsetTime minusNanos(long nanos)
Возвращает копию этого OffsetTime, уменьшенную на указанное количество наносекунд.
OffsetTime minusSeconds(long seconds)
Возвращает копию этого OffsetTime, уменьшенную на указанное количество секунд.
static OffsetTime now()
Получает текущее время по системным часам в часовом поясе по умолчанию.
static OffsetTime now(Clock clock)
Получает текущее время по указанным часам.
static OffsetTime now(ZoneId zone)
Получает текущее время по системным часам в указанном часовом поясе.
static OffsetTime of(int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
Получает экземпляр OffsetTime по значениям часа, минуты, секунды и наносекунды.
static OffsetTime of(LocalTime time, ZoneOffset offset)
Получает экземпляр OffsetTime по локальному времени и смещению.
static OffsetTime ofInstant(Instant instant, ZoneId zone)
Получает экземпляр OffsetTime по Instant и идентификатору часового пояса.
static OffsetTime parse(CharSequence text)
Получает экземпляр OffsetTime из текстовой строки, например 10:15:30+01:00.
static OffsetTime parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр OffsetTime из текстовой строки с использованием указанного форматировщика.
OffsetTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого времени с прибавленным указанным значением.
OffsetTime plus(TemporalAmount amountToAdd)
Возвращает копию этого времени с прибавленным указанным значением.
OffsetTime plusHours(long hours)
Возвращает копию этого OffsetTime, увеличенную на указанное количество часов.
OffsetTime plusMinutes(long minutes)
Возвращает копию этого OffsetTime, увеличенную на указанное количество минут.
OffsetTime plusNanos(long nanos)
Возвращает копию этого OffsetTime, увеличенную на указанное количество наносекунд.
OffsetTime plusSeconds(long seconds)
Возвращает копию этого OffsetTime, увеличенную на указанное количество секунд.
<R> R query(TemporalQuery<R> query)
Выполняет запрос к этому времени с помощью указанного запроса.
ValueRange range(TemporalField field)
Возвращает диапазон допустимых значений указанного поля.
long toEpochSecond(LocalDate date)
Преобразует этот OffsetTime в количество секунд, прошедших с начала эпохи 1970-01-01T00:00:00Z.
LocalTime toLocalTime()
Возвращает компонент LocalTime этой даты и времени.
String toString()
Представляет это время в виде String, например 10:15:30+01:00.
OffsetTime truncatedTo(TemporalUnit unit)
Возвращает копию этого OffsetTime с усечённым временем.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет промежуток времени до другого времени в указанных единицах измерения.
OffsetTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого времени.
OffsetTime with(TemporalField field, long newValue)
Возвращает копию этого времени, в которой указанному полю присвоено новое значение.
OffsetTime withHour(int hour)
Возвращает копию этого OffsetTime с изменённым значением часа дня.
OffsetTime withMinute(int minute)
Возвращает копию этого OffsetTime с изменённым значением минуты часа.
OffsetTime withNano(int nanoOfSecond)
Возвращает копию этого OffsetTime с изменённым значением наносекунды секунды.
OffsetTime withOffsetSameInstant(ZoneOffset offset)
Возвращает копию этого OffsetTime с указанным смещением, гарантируя, что результат соответствует тому же моменту времени в подразумеваемый день.
OffsetTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого OffsetTime с указанным смещением, гарантируя, что локальное время результата останется прежним.
OffsetTime withSecond(int second)
Возвращает копию этого OffsetTime с изменённым значением секунды минуты.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание полей

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)
Проверяет, поддерживается ли указанное поле.

Проверяет, можно ли получить из этого времени значение указанного поля. Если возвращается 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)
Проверяет, поддерживается ли указанная единица измерения.

Проверяет, можно ли прибавить указанную единицу к этому времени со смещением или вычесть её из него. Если возвращается 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()
Получает смещение часового пояса, например '+01:00'.

Это смещение местного времени относительно UTC/Гринвича.

Возвращает:
смещение часового пояса, не null

withOffsetSameLocal

public OffsetTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого OffsetTime с указанным смещением, сохраняя местное время в результате.

Этот метод возвращает объект с тем же LocalTime и указанным ZoneOffset. Никакие вычисления не требуются и не выполняются. Например, если это время представляет 10:30+02:00, а указанное смещение — +03:00, метод вернёт 10:30+03:00.

Чтобы учесть разницу между смещениями и скорректировать поля времени, используйте withOffsetSameInstant(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(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

with

public OffsetTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого времени.

Возвращает OffsetTime на основе этого значения с скорректированным временем. Корректировка выполняется с помощью указанного объекта-стратегии. Ознакомьтесь с документацией корректировщика, чтобы узнать, какая именно корректировка будет выполнена.

Простой корректировщик может лишь установить одно из полей, например поле часа. Более сложный корректировщик может установить время на последний час дня.

Классы LocalTime и ZoneOffset реализуют TemporalAdjuster, поэтому этот метод можно использовать для изменения времени или смещения:

 result = offsetTime.with(time);
 result = offsetTime.with(offset);

Результат этого метода получается вызовом метода TemporalAdjuster.adjustInto(Temporal) для указанного корректировщика с передачей this в качестве аргумента.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
with в интерфейсе Temporal
Параметры:
adjuster — корректировщик, который следует использовать, не null
Возвращает:
OffsetTime на основе this с выполненной корректировкой, не null
Выбрасывает:
DateTimeException — если корректировку невозможно выполнить
ArithmeticException — при переполнении числового значения

with

public OffsetTime with(TemporalField field, long newValue)
Возвращает копию этого времени с указанным полем, установленным в новое значение.

Возвращает OffsetTime на основе этого значения с изменённым значением указанного поля. Этот метод можно использовать для изменения любого поддерживаемого поля, например часа, минуты или секунды. Если установить значение невозможно, поскольку поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле относится к типу ChronoField, корректировка выполняется здесь.

Для поля OFFSET_SECONDS возвращается время с указанным смещением. Местное время не изменяется. Если новое значение смещения выходит за допустимый диапазон, выбрасывается DateTimeException.

Для остальных поддерживаемых полей supported fields поведение соответствует одноимённому методу LocalTime.with(TemporalField, long) LocalTime}. В этом случае смещение не участвует в вычислениях и остаётся неизменным.

Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

Если поле не относится к типу ChronoField, результат этого метода определяется вызовом TemporalField.adjustInto(Temporal, long) с передачей this в качестве аргумента. В этом случае поле определяет, следует ли корректировать момент времени и каким образом.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
with в интерфейсе Temporal
Параметры:
field — поле, которое нужно установить в результате, не null
newValue — новое значение поля в результате
Возвращает:
OffsetTime на основе this с установленным указанным полем, не null
Выбрасывает:
DateTimeException — если поле невозможно установить
UnsupportedTemporalTypeException — если поле не поддерживается
ArithmeticException — при переполнении числового значения

withHour

public OffsetTime withHour(int hour)
Возвращает копию этого OffsetTime с изменённым часом дня.

Смещение не влияет на вычисления и остаётся неизменным в результате.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
hour — час дня, устанавливаемый в результате, от 0 до 23
Возвращает:
OffsetTime на основе этого времени с указанным часом, не null
Выбрасывает:
DateTimeException — если значение часа недопустимо

withMinute

public OffsetTime withMinute(int minute)
Возвращает копию этого OffsetTime с изменённой минутой часа.

Смещение не влияет на вычисления и остаётся неизменным в результате.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
minute — минута часа, устанавливаемая в результате, от 0 до 59
Возвращает:
OffsetTime на основе этого времени с указанной минутой, не null
Выбрасывает:
DateTimeException — если значение минуты недопустимо

withSecond

public OffsetTime withSecond(int second)
Возвращает копию этого OffsetTime с изменённой секундой минуты.

Смещение не влияет на вычисления и остаётся неизменным в результате.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
second — секунда минуты, устанавливаемая в результате, от 0 до 59
Возвращает:
OffsetTime на основе этого времени с указанной секундой, не null
Выбрасывает:
DateTimeException — если значение секунды недопустимо

withNano

public OffsetTime withNano(int nanoOfSecond)
Возвращает копию этого OffsetTime с изменённой наносекундой.

Смещение не влияет на вычисления и остаётся неизменным в результате.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
nanoOfSecond — наносекунда, устанавливаемая в результате, от 0 до 999,999,999
Возвращает:
OffsetTime на основе этого времени с указанной наносекундой, не null
Выбрасывает:
DateTimeException — если значение наносекунд недопустимо

truncatedTo

public OffsetTime truncatedTo(TemporalUnit unit)
Возвращает копию этого OffsetTime с усечённым временем.

При усечении создаётся копия исходного времени, в которой поля, меньшие указанной единицы измерения, устанавливаются в ноль. Например, усечение до minutes устанавливает поля секунды минуты и наносекунды в ноль.

Длительность единицы измерения должна делить продолжительность стандартного дня без остатка. Этому условию соответствуют все стандартные единицы измерения времени из ChronoUnit и DAYS. Для других единиц измерения выбрасывается исключение.

Смещение не влияет на вычисления и остаётся неизменным в результате.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
unit — единица измерения, до которой нужно усечь время, не null
Возвращает:
OffsetTime на основе этого времени с усечённым временем, не null
Выбрасывает:
DateTimeException — если усечение невозможно
UnsupportedTemporalTypeException — если единица измерения не поддерживается

plus

public OffsetTime plus(TemporalAmount amountToAdd)
Возвращает копию этого времени с добавленной указанной величиной.

Возвращает объект OffsetTime на основе этого объекта с добавленной указанной величиной. Обычно величина представляет собой Duration, но может быть любым другим типом, реализующим интерфейс TemporalAmount.

Вычисление делегируется объекту величины вызовом TemporalAmount.addTo(Temporal). Реализация величины может выполнять сложение любым способом, однако обычно она вызывает plus(long, TemporalUnit). Чтобы определить, можно ли успешно выполнить сложение, обратитесь к документации реализации величины.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd — добавляемая величина, не null
Возвращает:
объект OffsetTime на основе этого времени с выполненным сложением, не null
Вызывает исключение:
DateTimeException — если сложение невозможно выполнить
ArithmeticException — при переполнении числового значения

plus

public OffsetTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого времени с добавленной указанной величиной.

Возвращает объект OffsetTime на основе этого объекта с добавленной величиной в указанной единице измерения. Если добавить величину невозможно из-за того, что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является значением ChronoUnit, сложение выполняется методом LocalTime.plus(long, TemporalUnit). Смещение не участвует в вычислении и останется неизменным в результате.

Если поле не является значением ChronoUnit, результат этого метода получается вызовом TemporalUnit.addTo(Temporal, long) с аргументом this. В этом случае единица измерения определяет, следует ли выполнять сложение и каким образом.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd — количество единиц измерения, добавляемое к результату; может быть отрицательным
unit — единица измерения добавляемой величины, не null
Возвращает:
объект OffsetTime на основе этого времени с добавленной указанной величиной, не null
Вызывает исключение:
DateTimeException — если сложение невозможно выполнить
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при переполнении числового значения

plusHours

public OffsetTime plusHours(long hours)
Возвращает копию этого OffsetTime с добавленным указанным количеством часов.

Добавляет указанное количество часов к этому времени и возвращает новое время. Вычисление выполняется с переходом через полночь.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
hours — количество добавляемых часов; может быть отрицательным
Возвращает:
объект OffsetTime на основе этого времени с добавленными часами, не null

plusMinutes

public OffsetTime plusMinutes(long minutes)
Возвращает копию этого OffsetTime с добавленным указанным количеством минут.

Добавляет указанное количество минут к этому времени и возвращает новое время. Вычисление выполняется с переходом через полночь.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
minutes — количество добавляемых минут; может быть отрицательным
Возвращает:
объект OffsetTime на основе этого времени с добавленными минутами, не null

plusSeconds

public OffsetTime plusSeconds(long seconds)
Возвращает копию этого OffsetTime с добавленным указанным количеством секунд.

Добавляет указанное количество секунд к этому времени и возвращает новое время. Вычисление выполняется с переходом через полночь.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
seconds — количество добавляемых секунд; может быть отрицательным
Возвращает:
объект OffsetTime на основе этого времени с добавленными секундами, не null

plusNanos

public OffsetTime plusNanos(long nanos)
Возвращает копию этого OffsetTime с добавленным указанным количеством наносекунд.

Добавляет указанное количество наносекунд к этому времени и возвращает новое время. Вычисление выполняется с переходом через полночь.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
nanos — количество добавляемых наносекунд; может быть отрицательным
Возвращает:
объект OffsetTime на основе этого времени с добавленными наносекундами, не null

minus

public OffsetTime minus(TemporalAmount amountToSubtract)
Возвращает копию этого времени с вычтенной указанной величиной.

Возвращает объект OffsetTime на основе этого объекта с вычтенной указанной величиной. Обычно величина представляет собой Duration, но может быть любым другим типом, реализующим интерфейс TemporalAmount.

Вычисление делегируется объекту величины вызовом TemporalAmount.subtractFrom(Temporal). Реализация величины может выполнять вычитание любым способом, однако обычно она вызывает minus(long, TemporalUnit). Чтобы определить, можно ли успешно выполнить вычитание, обратитесь к документации реализации величины.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract — вычитаемая величина, не null
Возвращает:
объект OffsetTime на основе этого времени с выполненным вычитанием, не null
Вызывает исключение:
DateTimeException — если вычитание невозможно выполнить
ArithmeticException — при переполнении числового значения

minus

public OffsetTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого времени с вычтенной указанной величиной.

Возвращает объект OffsetTime на основе этого объекта с вычтенной величиной в указанной единице измерения. Если вычесть величину невозможно из-за того, что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Этот метод эквивалентен методу plus(long, TemporalUnit) с величиной, взятой с противоположным знаком. Полное описание того, как работает сложение и, следовательно, вычитание, приведено в описании этого метода.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract — количество единиц измерения, вычитаемое из результата; может быть отрицательным
unit — единица измерения вычитаемой величины, не null
Возвращает:
объект OffsetTime на основе этого времени с вычтенной указанной величиной, не null
Вызывает исключение:
DateTimeException — если вычитание невозможно выполнить
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при переполнении числового значения

minusHours

public OffsetTime minusHours(long hours)
Возвращает копию этого OffsetTime с вычтенным указанным количеством часов.

Вычитает указанное количество часов из этого времени и возвращает новое время. Вычисление выполняется с переходом через полночь.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
hours — количество вычитаемых часов; может быть отрицательным
Возвращает:
объект OffsetTime на основе этого времени с вычтенными часами, не null

minusMinutes

public OffsetTime minusMinutes(long minutes)
Возвращает копию этого OffsetTime с вычтенным указанным количеством минут.

Вычитает указанное количество минут из этого времени и возвращает новое время. Вычисление выполняется с переходом через полночь.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
minutes — количество вычитаемых минут; может быть отрицательным
Возвращает:
объект OffsetTime на основе этого времени с вычтенными минутами, не null

minusSeconds

public OffsetTime minusSeconds(long seconds)
Возвращает копию этого OffsetTime с вычтенным указанным количеством секунд.

Вычитает указанное количество секунд из этого времени и возвращает новое время. Вычисление выполняется с переходом через полночь.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
seconds — количество вычитаемых секунд; может быть отрицательным
Возвращает:
объект OffsetTime на основе этого времени с вычтенными секундами, не null

minusNanos

public OffsetTime minusNanos(long nanos)
Возвращает копию этого OffsetTime с вычтенным указанным количеством наносекунд.

Вычитает указанное количество наносекунд из этого времени и возвращает новое время. Вычисление выполняется с переходом через полночь.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
nanos — количество вычитаемых наносекунд; может быть отрицательным
Возвращает:
объект OffsetTime на основе этого времени с вычтенными наносекундами, не null

query

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 — при переполнении числового значения

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 в качестве первого аргумента и преобразованным входным объектом временной шкалы в качестве второго аргумента.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
until в интерфейсе Temporal
Параметры:
endExclusive — конечное время, не включаемое в интервал; преобразуется в OffsetTime, не null
unit — единица измерения промежутка, не null
Возвращает:
промежуток времени между этим временем и конечным временем
Вызывает исключение:
DateTimeException — если промежуток невозможно вычислить или конечный объект временной шкалы невозможно преобразовать в OffsetTime
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при переполнении числового значения

format

public String format(DateTimeFormatter formatter)
Форматирует это время с помощью указанного средства форматирования.

Это время передаётся средству форматирования для создания строки.

Параметры:
formatter — используемое средство форматирования, не null
Возвращает:
строка с форматированным временем, не null
Вызывает исключение:
DateTimeException — если при выводе произошла ошибка

atDate

public OffsetDateTime atDate(LocalDate date)
Объединяет это время с датой, чтобы создать объект OffsetDateTime.

Возвращает объект OffsetDateTime, образованный из этого времени и указанной даты. Допустимы все возможные сочетания даты и времени.

Параметры:
date — дата для объединения, не null
Возвращает:
дата-время со смещением, образованное из этого времени и указанной даты, не 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.

Например, порядок сортировки будет следующим:

  1. 10:30+01:00
  2. 11:00+01:00
  3. 12:00+02:00
  4. 11:30+01:00
  5. 12:00+01:00
  6. 12:30+01:00
Значения № 2 и № 3 обозначают один и тот же момент времени. Если два значения обозначают один и тот же момент, для их различения сравнивается местное время. Этот шаг необходим, чтобы порядок сортировки был согласован с equals().

Чтобы сравнить местное время двух экземпляров TemporalAccessor, используйте ChronoField.NANO_OF_DAY в качестве компаратора.

Определено в:
compareTo в интерфейсе Comparable<OffsetTime>
Параметры:
other — другое сравниваемое время, не null
Возвращает:
значение компаратора: сравнение соответствующих моментов other в UTC, если они не равны; если соответствующие моменты other в UTC равны — сравнение местного времени этого объекта с местным временем other
См. также:
  • isBefore(OffsetTime)
  • isAfter(OffsetTime)

isAfter

public boolean isAfter(OffsetTime other)
Проверяет, наступает ли момент этого значения OffsetTime позже момента указанного времени, если применить оба значения времени к одной дате.

Этот метод отличается от сравнения в compareTo(OffsetTime) тем, что сравнивает только моменты времени. Это эквивалентно преобразованию обоих значений времени в моменты времени с использованием одной и той же даты и сравнению этих моментов.

Параметры:
other — другое сравниваемое время, не null
Возвращает:
true, если этот момент наступает позже момента указанного времени

isBefore

public boolean isBefore(OffsetTime other)
Проверяет, наступает ли момент этого значения OffsetTime раньше момента указанного времени, если применить оба значения времени к одной дате.

Этот метод отличается от сравнения в compareTo(OffsetTime) тем, что сравнивает только моменты времени. Это эквивалентно преобразованию обоих значений времени в моменты времени с использованием одной и той же даты и сравнению этих моментов.

Параметры:
other — другое сравниваемое время, не null
Возвращает:
true, если этот момент наступает раньше момента указанного времени

isEqual

public boolean isEqual(OffsetTime other)
Проверяет, совпадает ли момент этого значения OffsetTime с моментом указанного времени, если применить оба значения времени к одной дате.

Этот метод отличается от сравнений в compareTo(OffsetTime) и equals(Object) тем, что сравнивает только моменты времени. Это эквивалентно преобразованию обоих значений времени в моменты времени с использованием одной и той же даты и сравнению этих моментов.

Параметры:
other — другое сравниваемое время, не null
Возвращает:
true, если этот момент совпадает с моментом указанного времени

equals

public boolean equals(Object obj)
Проверяет, равно ли это время другому времени.

Сравнение выполняется по местному времени и смещению. Чтобы сравнить значения на предмет совпадения момента времени, используйте isEqual(OffsetTime).

Сравниваются только объекты типа OffsetTime; для объектов других типов возвращается false. Чтобы сравнить местное время двух экземпляров TemporalAccessor, используйте ChronoField.NANO_OF_DAY в качестве компаратора.

Переопределяет:
equals в классе Object
Параметры:
obj — проверяемый объект; для null возвращается false
Возвращает:
true, если это время равно другому времени
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код этого времени.
Переопределяет:
hashCode в классе Object
Возвращает:
подходящий хеш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Представляет это время в виде строки String, например 10:15:30+01:00.

Результат будет соответствовать одному из следующих форматов ISO-8601:

  • HH:mmXXXXX
  • HH:mm:ssXXXXX
  • HH:mm:ss.SSSXXXXX
  • HH:mm:ss.SSSSSSXXXXX
  • HH:mm:ss.SSSSSSSSSXXXXX
Используется самый короткий формат, который выводит полное значение времени; пропущенные части считаются равными нулю.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого времени, не null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзор концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/OffsetTime.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API