Spec-Zone.ru › OpenJDK 21

Класс 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 с изменённой секундой минуты.

Методы, объявленные в классе java.lang.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 в качестве аргумента. Поддерживается ли единица измерения определяется ею.

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()
Получает смещение часового пояса, например, '+01:00'.

Это смещение местного времени от 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
Возвращает:
новую копию времени, основанную на текущем времени, с внесённой корректировкой, не 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 - если единица не поддерживается

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.

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

  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 в качестве компаратора.

Specified by:
compareTo в интерфейсе Comparable<OffsetTime>
Parameters:
other - другое время для сравнения, не null
Returns:
значение компаратора, т. е. сравнение эквивалентного момента времени UTC, если они не равны, и если эквивалентный момент времени UTC равен, сравнение этого локального времени с локальным временем other
See Also:
  • isBefore(java.time.OffsetTime)
  • isAfter(java.time.OffsetTime)

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:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код для этого времени.
Overrides:
hashCode в классе Object
Returns:
подходящий хеш-код
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.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
Используемый формат будет самым коротким, который выводит полное значение времени, где пропущенные части предполагаются равными нулю.
Overrides:
toString в классе Object
Returns:
строковое представление этого времени, не null

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/OffsetTime.html

Spec-Zone.ru

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