Spec-Zone.ru › OpenJDK 21

Класс OffsetDateTime

java.lang.Object
java.time.OffsetDateTime
Все реализуемые интерфейсы:
Serializable, Comparable<OffsetDateTime>, Temporal, TemporalAccessor, TemporalAdjuster
public final class OffsetDateTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetDateTime>, Serializable
Дата и время с указанием смещения от UTC/Гринвича в системе календаря ISO-8601, например 2007-12-03T10:15:30+01:00.

OffsetDateTime — неизменяемое представление даты и времени со смещением. Этот класс хранит все поля даты и времени с точностью до наносекунд, а также смещение от UTC/Гринвича. Например, значение «2 октября 2007 года в 13:45:30.123456789 +02:00» может быть сохранено в OffsetDateTime.

OffsetDateTime, ZonedDateTime и Instant все хранят момент на временной шкале с точностью до наносекунд. Instant — самое простое, просто представляющее момент. OffsetDateTime добавляет к моменту смещение от UTC/Гринвича, что позволяет получить локальное время. ZonedDateTime добавляет полные правила часового пояса.

Предполагается, что ZonedDateTime или Instant используются для моделирования данных в более простых приложениях. Этот класс может использоваться при моделировании концепций даты и времени более подробно или при общении с базой данных или в сетевом протоколе.

Это значение-базовый класс; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе могут возникнуть непредсказуемые последствия. Например, в будущих версиях синхронизация может быть нарушена. Для сравнения следует использовать метод equals.

Требования к реализации:
Этот класс неизменяемый и потокобезопасный.
С:
1.8
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final OffsetDateTime MAX
Максимально поддерживаемое OffsetDateTime, '+999999999-12-31T23:59:59.999999999-18:00'.
static final OffsetDateTime MIN
Минимально поддерживаемое OffsetDateTime, '-999999999-01-01T00:00:00+18:00'.

Краткое описание методов

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект так, чтобы он имел тот же смещение, дату и время, что и этот объект.
ZonedDateTime atZoneSameInstant(ZoneId zone)
Объединяет эту дату и время с часовым поясом для создания ZonedDateTime , гарантируя, что результат имеет тот же момент времени.
ZonedDateTime atZoneSimilarLocal(ZoneId zone)
Объединяет эту дату и время с часовым поясом для создания ZonedDateTime , пытаясь сохранить ту же локальную дату и время.
int compareTo(OffsetDateTime other)
Сравнивает эту дату и время с другой датой и временем.
boolean equals(Object obj)
Проверяет, равна ли эта дата и время другой дате и времени.
String format(DateTimeFormatter formatter)
Форматирует эту дату и время с использованием указанного форматера.
static OffsetDateTime from(TemporalAccessor temporal)
Получает экземпляр OffsetDateTime из временного объекта.
int get(TemporalField field)
Получает значение указанного поля из этой даты и времени в виде int.
int getDayOfMonth()
Получает поле день месяца.
DayOfWeek getDayOfWeek()
Получает поле день недели, которое является перечислением DayOfWeek.
int getDayOfYear()
Получает поле день года.
int getHour()
Получает поле час дня.
long getLong(TemporalField field)
Получает значение указанного поля из этой даты и времени в виде long.
int getMinute()
Получает поле минута часа.
Month getMonth()
Получает поле месяц года с использованием перечисления Month.
int getMonthValue()
Получает поле месяц года от 1 до 12.
int getNano()
Получает поле наносекунда.
ZoneOffset getOffset()
Получает смещение зоны, например, '+01:00'.
int getSecond()
Получает поле секунда минуты.
int getYear()
Получает поле год.
int hashCode()
Хеш-код для этой даты и времени.
boolean isAfter(OffsetDateTime other)
Проверяет, находится ли момент времени этой даты и времени после момента времени указанной даты и времени.
boolean isBefore(OffsetDateTime other)
Проверяет, находится ли момент времени этой даты и времени до момента времени указанной даты и времени.
boolean isEqual(OffsetDateTime other)
Проверяет, равен ли момент времени этой даты и времени моменту времени указанной даты и времени.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица.
OffsetDateTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этой даты и времени с вычтенным указанным значением.
OffsetDateTime minus(TemporalAmount amountToSubtract)
Возвращает копию этой даты и времени с вычтенным указанным значением.
OffsetDateTime minusDays(long days)
Возвращает копию этого OffsetDateTime с вычтенным указанным числом дней.
OffsetDateTime minusHours(long hours)
Возвращает копию этого OffsetDateTime с вычтенным указанным числом часов.
OffsetDateTime minusMinutes(long minutes)
Возвращает копию этого OffsetDateTime с вычтенным указанным числом минут.
OffsetDateTime minusMonths(long months)
Возвращает копию этого OffsetDateTime с вычтенным указанным числом месяцев.
OffsetDateTime minusNanos(long nanos)
Возвращает копию этого OffsetDateTime с вычтенным указанным числом наносекунд.
OffsetDateTime minusSeconds(long seconds)
Возвращает копию этого OffsetDateTime с вычтенным указанным числом секунд.
OffsetDateTime minusWeeks(long weeks)
Возвращает копию этого OffsetDateTime с вычтенным указанным числом недель.
OffsetDateTime minusYears(long years)
Возвращает копию этого OffsetDateTime с вычтенным указанным числом лет.
static OffsetDateTime now()
Получает текущую дату и время от системных часов в часовом поясе по умолчанию.
static OffsetDateTime now(Clock clock)
Получает текущую дату и время от указанных часов.
static OffsetDateTime now(ZoneId zone)
Получает текущую дату и время от системных часов в указанном часовом поясе.
static OffsetDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
Получает экземпляр OffsetDateTime из года, месяца, дня, часа, минуты, секунды, наносекунды и смещения.
static OffsetDateTime of(LocalDate date, LocalTime time, ZoneOffset offset)
Получает экземпляр OffsetDateTime из даты, времени и смещения.
static OffsetDateTime of(LocalDateTime dateTime, ZoneOffset offset)
Получает экземпляр OffsetDateTime из даты и времени и смещения.
static OffsetDateTime ofInstant(Instant instant, ZoneId zone)
Получает экземпляр OffsetDateTime из Instant и идентификатора зоны.
static OffsetDateTime parse(CharSequence text)
Получает экземпляр OffsetDateTime из текстовой строки, например, 2007-12-03T10:15:30+01:00.
static OffsetDateTime parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр OffsetDateTime из текстовой строки с использованием определенного форматера.
OffsetDateTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этой даты и времени с добавленным указанным значением.
OffsetDateTime plus(TemporalAmount amountToAdd)
Возвращает копию этой даты и времени с добавленным указанным значением.
OffsetDateTime plusDays(long days)
Возвращает копию этого OffsetDateTime с добавленным указанным числом дней.
OffsetDateTime plusHours(long hours)
Возвращает копию этого OffsetDateTime с добавленным указанным числом часов.
OffsetDateTime plusMinutes(long minutes)
Возвращает копию этого OffsetDateTime с добавленным указанным числом минут.
OffsetDateTime plusMonths(long months)
Возвращает копию этого OffsetDateTime с добавленным указанным числом месяцев.
OffsetDateTime plusNanos(long nanos)
Возвращает копию этого OffsetDateTime с добавленным указанным числом наносекунд.
OffsetDateTime plusSeconds(long seconds)
Возвращает копию этого OffsetDateTime с добавленным указанным числом секунд.
OffsetDateTime plusWeeks(long weeks)
Возвращает копию этого OffsetDateTime с добавленным указанным числом недель.
OffsetDateTime plusYears(long years)
Возвращает копию этого OffsetDateTime с добавленным указанным числом лет.
<R> R query(TemporalQuery<R> query)
Запрашивает эту дату и время с использованием указанного запроса.
ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
static Comparator<OffsetDateTime> timeLineOrder()
Получает компаратор, который сравнивает два экземпляра OffsetDateTime , основываясь только на моменте времени.
long toEpochSecond()
Преобразует эту дату и время в количество секунд от эпохи 1970-01-01T00:00:00Z.
Instant toInstant()
Преобразует эту дату и время в Instant.
LocalDate toLocalDate()
Получает LocalDate часть этой даты и времени.
LocalDateTime toLocalDateTime()
Получает LocalDateTime часть этой даты и времени.
LocalTime toLocalTime()
Получает LocalTime часть этой даты и времени.
OffsetTime toOffsetTime()
Преобразует это время в OffsetTime.
String toString()
Выводит это время как String, например, 2007-12-03T10:15:30+01:00.
ZonedDateTime toZonedDateTime()
Преобразует это время в ZonedDateTime с использованием смещения в качестве идентификатора зоны.
OffsetDateTime truncatedTo(TemporalUnit unit)
Возвращает копию этого OffsetDateTime с обнуленным временем.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет количество времени до другого времени в указанной единице.
OffsetDateTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого времени.
OffsetDateTime with(TemporalField field, long newValue)
Возвращает копию этого времени с указанным полем, установленным на новое значение.
OffsetDateTime withDayOfMonth(int dayOfMonth)
Возвращает копию этого OffsetDateTime с изменённым днём месяца.
OffsetDateTime withDayOfYear(int dayOfYear)
Возвращает копию этого OffsetDateTime с изменённым номером дня года.
OffsetDateTime withHour(int hour)
Возвращает копию этого OffsetDateTime с изменённым часом.
OffsetDateTime withMinute(int minute)
Возвращает копию этого OffsetDateTime с изменённой минутой.
OffsetDateTime withMonth(int month)
Возвращает копию этого OffsetDateTime с изменённым месяцем.
OffsetDateTime withNano(int nanoOfSecond)
Возвращает копию этого OffsetDateTime с изменёнными наносекундами.
OffsetDateTime withOffsetSameInstant(ZoneOffset offset)
Возвращает копию этого OffsetDateTime со смещением, гарантирующим, что результат находится в тот же момент.
OffsetDateTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого OffsetDateTime со смещением, гарантирующим, что результат имеет то же локальное время.
OffsetDateTime withSecond(int second)
Возвращает копию этого OffsetDateTime с изменённой секундой.
OffsetDateTime withYear(int year)
Возвращает копию этого OffsetDateTime с изменённым годом.

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

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

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

MIN

public static final OffsetDateTime MIN
Минимаемая поддерживаемая дата и время, '-999999999-01-01T00:00:00+18:00'. Это местное время полуночи в начале минимальной даты с максимальным смещением (большие смещения предшествуют на временной шкале). Это сочетает LocalDateTime.MIN и ZoneOffset.MAX. Это можно использовать в приложении как дату и время "очень далёкого прошлого".

MAX

public static final OffsetDateTime MAX
Максимальная поддерживаемая дата и время, '+999999999-12-31T23:59:59.999999999-18:00'. Это местное время непосредственно перед полуночью в конце максимальной даты с минимальным смещением (большие отрицательные смещения находятся позже на временной шкале). Это сочетает LocalDateTime.MAX и ZoneOffset.MIN. Это можно использовать в приложении как дату и время "очень далёкого будущего".

Подробное описание методов

timeLineOrder

public static Comparator<OffsetDateTime> timeLineOrder()
Получает компаратор, который сравнивает две OffsetDateTime сущности только на основе момента.

Этот метод отличается от сравнения в compareTo(java.time.OffsetDateTime) тем, что он сравнивает только базовый момент.

Возвращает:
компаратор для сравнения в порядке временной шкалы
См. также:
  • isAfter(java.time.OffsetDateTime)
  • isBefore(java.time.OffsetDateTime)
  • isEqual(java.time.OffsetDateTime)

now

public static OffsetDateTime now()
Получает текущую дату и время из системных часов в часовом поясе по умолчанию.

Это запросит system clock в часовом поясе по умолчанию для получения текущей даты и времени. Смещение будет рассчитано на основе часового пояса в часах.

Использование этого метода не позволит использовать альтернативные часы для тестирования, так как часы заданы жёстко.

Возвращает:
текущую дату и время с использованием системных часов, не null

now

public static OffsetDateTime now(ZoneId zone)
Получает текущую дату и время из системных часов в указанном часовом поясе.

Это запросит system clock для получения текущей даты и времени. Указание часового пояса предотвращает зависимость от часового пояса по умолчанию. Смещение будет рассчитано на основе указанного часового пояса.

Использование этого метода не позволит использовать альтернативные часы для тестирования, так как часы заданы жёстко.

Параметры:
zone - идентификатор часового пояса для использования, не null
Возвращает:
текущую дату и время с использованием системных часов, не null

now

public static OffsetDateTime now(Clock clock)
Получает текущую дату и время из указанных часов.

Это запросит указанные часы для получения текущей даты и времени. Смещение будет рассчитано на основе часового пояса в часах.

Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.

Параметры:
clock - часы для использования, не null
Возвращает:
текущую дату и время, не null

of

public static OffsetDateTime of(LocalDate date, LocalTime time, ZoneOffset offset)
Получает экземпляр OffsetDateTime из даты, времени и смещения.

Это создаёт дату и время со смещением с указанной локальной датой, временем и смещением.

Параметры:
date - локальная дата, не null
time - локальное время, не null
offset - смещение часового пояса, не null
Возвращает:
дата и время со смещением, не null

of

public static OffsetDateTime of(LocalDateTime dateTime, ZoneOffset offset)
Получает экземпляр OffsetDateTime из даты и времени и смещения.

Это создаёт дату и время со смещением с указанной локальной датой и временем и смещением.

Параметры:
dateTime - локальная дата и время, не null
offset - смещение часового пояса, не null
Возвращает:
дата и время со смещением, не null

of

public static OffsetDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
Получает экземпляр OffsetDateTime из года, месяца, дня, часа, минуты, секунды, наносекунды и смещения.

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

Этот метод существует в основном для написания тестовых случаев. В коде, отличном от тестового, обычно используются другие методы для создания даты и времени со смещением. LocalDateTime имеет пять дополнительных удобных вариантов эквивалентного фабричного метода, принимающего меньше аргументов. Они не предоставляются здесь для уменьшения объёма API.

Параметры:
year - год для представления, от MIN_YEAR до MAX_YEAR
month - месяц для представления, от 1 (январь) до 12 (декабрь)
dayOfMonth - день месяца для представления, от 1 до 31
hour - час для представления, от 0 до 23
minute - минута для представления, от 0 до 59
second - секунда для представления, от 0 до 59
nanoOfSecond - наносекунда для представления, от 0 до 999 999 999
offset - смещение часового пояса, не null
Возвращает:
дата и время со смещением, не null
Исключения:
DateTimeException - если значение любого поля выходит за пределы диапазона или если день месяца недействителен для указанного месяца и года

ofInstant

public static OffsetDateTime ofInstant(Instant instant, ZoneId zone)
Получает экземпляр OffsetDateTime из Instant и идентификатора часового пояса.

Это создаёт дату и время со смещением с тем же мгновением, что и указанное. Определение смещения от UTC/Гринвича просто, так как для каждого мгновения существует только одно допустимое смещение.

Параметры:
instant - мгновение для создания даты и времени, не null
zone - часовой пояс, который может быть смещением, не null
Возвращает:
дата и время со смещением, не null
Исключения:
DateTimeException - если результат превышает поддерживаемый диапазон

from

public static OffsetDateTime from(TemporalAccessor temporal)
Получает экземпляр OffsetDateTime из временного объекта.

Это получает дату и время со смещением на основе указанного временного объекта. TemporalAccessor представляет собой произвольный набор информации о дате и времени, которую этот фабричный метод преобразует в экземпляр OffsetDateTime.

Преобразование сначала получит ZoneOffset из временного объекта. Затем оно попытается получить LocalDateTime, если необходимо, перейдя к Instant. Результатом будет сочетание ZoneOffset либо с LocalDateTime, либо с Instant. Реализации разрешено выполнять оптимизации, такие как доступ к тем полям, которые эквивалентны соответствующим объектам.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод, OffsetDateTime::from.

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
дата и время со смещением, не null
Исключения:
DateTimeException - если невозможно преобразовать в OffsetDateTime

parse

public static OffsetDateTime parse(CharSequence text)
Получает экземпляр OffsetDateTime из текстовой строки, такой как 2007-12-03T10:15:30+01:00.

Строка должна представлять собой корректную дату и время, и парсится с помощью DateTimeFormatter.ISO_OFFSET_DATE_TIME.

Параметры:
text - текст для парсинга, например "2007-12-03T10:15:30+01:00", не null
Возвращает:
разпарсенная дата и время со смещением, не null
Исключения:
DateTimeParseException - если текст не может быть разпарсен

parse

public static OffsetDateTime parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр OffsetDateTime из текстовой строки с использованием определённого форматера.

Текст парсится с использованием форматера, возвращая дату и время.

Параметры:
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
  • DAY_OF_WEEK
  • ALIGNED_DAY_OF_WEEK_IN_MONTH
  • ALIGNED_DAY_OF_WEEK_IN_YEAR
  • DAY_OF_MONTH
  • DAY_OF_YEAR
  • EPOCH_DAY
  • ALIGNED_WEEK_OF_MONTH
  • ALIGNED_WEEK_OF_YEAR
  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • YEAR_OF_ERA
  • YEAR
  • ERA
  • INSTANT_SECONDS
  • 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
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS
  • DECADES
  • CENTURIES
  • MILLENNIA
  • ERAS
Все остальные 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, EPOCH_DAY, PROLEPTIC_MONTH и INSTANT_SECONDS, которые слишком велики для 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 OffsetDateTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого OffsetDateTime со указанным смещением, гарантируя, что результат имеет то же локальное даты-время.

Этот метод возвращает объект с тем же LocalDateTime и указанным ZoneOffset. Расчет не нужен и не выполняется. Например, если это время представляет 2007-12-03T10:30+02:00 и указанное смещение +03:00, то этот метод вернет 2007-12-03T10:30+03:00.

Чтобы учесть разницу между смещениями и скорректировать поля времени, используйте withOffsetSameInstant(java.time.ZoneOffset).

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

Параметры:
offset - смещение часового пояса для изменения, не null
Возвращает:
объект OffsetDateTime на основе этого даты-времени со запрошенным смещением, не null

с заменой смещения на то же мгновение

public OffsetDateTime withOffsetSameInstant(ZoneOffset offset)
Возвращает копию этого OffsetDateTime со специфицированным смещением, гарантируя, что результат находится в то же мгновение.

Этот метод возвращает объект со специфицированным ZoneOffset и LocalDateTime , скорректированным на разницу между двумя смещениями. В результате старые и новые объекты будут представлять одно и то же мгновение. Это полезно для нахождения времени в другом часовом поясе. Например, если это время представляет 2007-12-03T10:30+02:00 , а указанное смещение равно +03:00, то этот метод вернёт 2007-12-03T11:30+03:00.

Чтобы изменить смещение без корректировки местного времени, используйте withOffsetSameLocal(java.time.ZoneOffset).

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

Параметры:
offset - смещение часового пояса для изменения, не null
Возвращает:
объект OffsetDateTime на основе этой даты и времени со запрошенным смещением, не null
Исключение:
DateTimeException - если результат превышает поддерживаемый диапазон дат

toLocalDateTime

public LocalDateTime toLocalDateTime()
Получает LocalDateTime часть этого объекта даты и времени.

Это возвращает LocalDateTime с тем же годом, месяцем, днём и временем, что и у этого объекта даты и времени.

Возвращает:
часть местного времени этой даты и времени, не null

toLocalDate

public LocalDate toLocalDate()
Получает LocalDate часть этого объекта даты и времени.

Это возвращает LocalDate с тем же годом, месяцем и днём, что и у этого объекта даты и времени.

Возвращает:
дата этой даты и времени, не null

getYear

public int getYear()
Получает поле года.

Этот метод возвращает примитивное значение int для года.

Год, возвращаемый этим методом, является пролептическим в соответствии с get(YEAR). Чтобы получить год эры, используйте get(YEAR_OF_ERA).

Возвращает:
год, от MIN_YEAR до MAX_YEAR

getMonthValue

public int getMonthValue()
Получает поле месяца от 1 до 12.

Этот метод возвращает месяц в виде int от 1 до 12. Код приложения часто становится понятнее, если используется перечисление Month, вызывая getMonth().

Возвращает:
месяц, от 1 до 12
См. также:
  • getMonth()

getMonth

public Month getMonth()
Получает поле месяца с использованием перечисления Month.

Этот метод возвращает перечисление Month для месяца. Это предотвращает неоднозначность, что int означают. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.

Возвращает:
месяц, не null
См. также:
  • getMonthValue()

getDayOfMonth

public int getDayOfMonth()
Получает поле дня месяца.

Этот метод возвращает примитивное значение int для дня месяца.

Возвращает:
день месяца, от 1 до 31

getDayOfYear

public int getDayOfYear()
Получает поле дня года.

Этот метод возвращает примитивное значение int для дня года.

Возвращает:
день года, от 1 до 365, или 366 в високосном году

getDayOfWeek

public DayOfWeek getDayOfWeek()
Получает поле дня недели, которое является перечислением DayOfWeek.

Этот метод возвращает перечисление DayOfWeek для дня недели. Это предотвращает неоднозначность, что int означают. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.

Дополнительная информация может быть получена из DayOfWeek. Это включает текстовые названия значений.

Возвращает:
день недели, не 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 OffsetDateTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этой даты и времени.

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

Простой корректировщик может просто установить одно из полей, например, поле года. Более сложный корректировщик может установить дату на последнее число месяца. Выбор общих корректировок предоставлен в TemporalAdjusters. Они включают в себя поиск "последнего числа месяца" и "следующей среды". Ключевые классы дат и времени также реализуют интерфейс TemporalAdjuster, например, Month и MonthDay. Корректировщик отвечает за обработку особых случаев, таких как разная длина месяцев и високосные годы.

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

  import static java.time.Month.*;
  import static java.time.temporal.TemporalAdjusters.*;

  result = offsetDateTime.with(JULY).with(lastDayOfMonth());
 

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

  result = offsetDateTime.with(date);
  result = offsetDateTime.with(time);
  result = offsetDateTime.with(offset);
 

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

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

Указано в:
with в интерфейсе Temporal
Параметры:
adjuster - используемый корректировщик, не null
Возвращает:
объект OffsetDateTime на основе this с произведенной корректировкой, не null
Исключение:
DateTimeException - если корректировка не может быть произведена
ArithmeticException - если происходит переполнение чисел

with

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

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

В некоторых случаях изменение указанного поля может привести к тому, что полученное время станет недопустимым, например, изменение месяца с 31 января на февраль сделает день месяца недопустимым. В таких случаях поле отвечает за разрешение даты. Обычно оно выберет предыдущую допустимую дату, которая в этом примере будет последним допустимым днём февраля.

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

Поле INSTANT_SECONDS вернёт время с указанным мгновением. Смещение и наносекунды не изменяются. Если новое значение мгновения находится за пределами допустимого диапазона, будет выброшено DateTimeException.

Поле OFFSET_SECONDS вернёт время с указанным смещением. Локальное время неизменно. Если новое значение смещения находится за пределами допустимого диапазона, будет выброшено DateTimeException.

Другие supported fields будут вести себя в соответствии с соответствующим методом в LocalDateTime. В этом случае смещение не участвует в вычислении и останется неизменным.

Все другие ChronoField объекты будут вызывать UnsupportedTemporalTypeException.

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

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Specified by:
with в интерфейсе Temporal
Parameters:
field - поле для установки в результате, не null
newValue - новое значение поля в результате
Returns:
копия OffsetDateTime на основе this с указанным полем, не null
Throws:
DateTimeException - если поле не может быть установлено
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение числового значения

withYear

public OffsetDateTime withYear(int year)
Возвращает копию этого объекта OffsetDateTime с изменённым годом.

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

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
year - год для установки в результате, от MIN_YEAR до MAX_YEAR
Returns:
копия OffsetDateTime на основе этого объекта даты и времени с запрошенным годом, не null
Throws:
DateTimeException - если значение года недопустимо

withMonth

public OffsetDateTime withMonth(int month)
Возвращает копию этого объекта OffsetDateTime с изменённым месяцем года.

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

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
month - месяц года для установки в результате, от 1 (январь) до 12 (декабрь)
Returns:
копия OffsetDateTime на основе этого объекта даты и времени с запрошенным месяцем, не null
Throws:
DateTimeException - если значение месяца года недопустимо

withDayOfMonth

public OffsetDateTime withDayOfMonth(int dayOfMonth)
Возвращает копию этого объекта OffsetDateTime с изменённым днём месяца.

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

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
dayOfMonth - день месяца для установки в результате, от 1 до 28-31
Returns:
копия OffsetDateTime на основе этого объекта даты и времени с запрошенным днём, не null
Throws:
DateTimeException - если значение дня месяца недопустимо или если день месяца недопустим для месяца-года

withDayOfYear

public OffsetDateTime withDayOfYear(int dayOfYear)
Возвращает копию этого объекта OffsetDateTime с изменённым днём года.

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

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
dayOfYear - день года для установки в результате, от 1 до 365-366
Returns:
копия OffsetDateTime на основе этой даты с запрошенным днём, не null
Throws:
DateTimeException - если значение дня года недопустимо или если день года недопустим для года

withHour

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

Дата и смещение не влияют на вычисление и будут такими же в результате.

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
hour - час суток для установки в результате, от 0 до 23
Returns:
копия OffsetDateTime на основе этого объекта даты и времени с запрошенным часом, не null
Throws:
DateTimeException - если значение часа недопустимо

withMinute

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

Дата и смещение не влияют на вычисление и будут такими же в результате.

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
minute - минута часа для установки в результате, от 0 до 59
Returns:
копия OffsetDateTime на основе этого объекта даты и времени с запрошенной минутой, не null
Throws:
DateTimeException - если значение минуты недопустимо

withSecond

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

Дата и смещение не влияют на вычисление и будут такими же в результате.

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
second - секунда минуты для установки в результате, от 0 до 59
Returns:
копия OffsetDateTime на основе этого объекта даты и времени с запрошенной секундой, не null
Throws:
DateTimeException - если значение секунды недопустимо

withNano

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

Дата и смещение не влияют на вычисление и будут такими же в результате.

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
nanoOfSecond - наносекунды секунды для установки в результате, от 0 до 999 999 999
Returns:
копия OffsetDateTime на основе этого объекта даты и времени с запрошенными наносекундами, не null
Throws:
DateTimeException - если значение наносекунд недопустимо

truncatedTo

public OffsetDateTime truncatedTo(TemporalUnit unit)
Возвращает копию этого объекта OffsetDateTime с обрезкой времени.

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

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

Смещение не влияет на вычисление и будет таким же в результате.

Этот объект неизменяемый и не затрагивается этим вызовом метода.

Parameters:
unit - единица для обрезки, не null
Returns:
копия OffsetDateTime на основе этого объекта даты и времени с обрезанным временем, не null
Throws:
DateTimeException - если обрезка невозможна
UnsupportedTemporalTypeException - если единица не поддерживается

плюс

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

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

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

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

Specified by:
plus в интерфейсе Temporal
Параметры:
amountToAdd - добавляемое значение, не null
Возвращает:
копию даты и времени, основанную на этой дате и времени, с выполненным добавлением, не null
Исключение:
DateTimeException - если добавление невозможно
ArithmeticException - если происходит переполнение числового значения

плюс

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

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

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

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

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

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

plusYears

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

Этот метод добавляет указанное значение к полю «год» в три шага:

  1. Добавление введенных лет к полю «год»
  2. Проверка, является ли полученная дата недействительной
  3. Корректировка дня месяца до последнего допустимого дня, если необходимо

Например, 2008-02-29 (високосный год) плюс один год даст недействительную дату 2009-02-29 (обычный год). Вместо возвращения недействительного результата вместо этого выбирается последний допустимый день месяца, 2009-02-28.

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

Параметры:
years - добавляемые годы, могут быть отрицательными
Возвращает:
копию даты и времени, основанную на этой дате и времени, с добавленными годами, не null
Исключение:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

plusMonths

public OffsetDateTime plusMonths(long months)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством месяцев.

Этот метод добавляет указанное значение к полю «месяц» в три шага:

  1. Добавление введенных месяцев к полю «месяц»
  2. Проверка, является ли полученная дата недействительной
  3. Корректировка дня месяца до последнего допустимого дня, если необходимо

Например, 2007-03-31 плюс один месяц даст недействительную дату 2007-04-31. Вместо возвращения недействительного результата вместо этого выбирается последний допустимый день месяца, 2007-04-30.

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

Параметры:
months - добавляемые месяцы, могут быть отрицательными
Возвращает:
копию даты и времени, основанную на этой дате и времени, с добавленными месяцами, не null
Исключение:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

plusWeeks

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

Этот метод добавляет указанное количество недель к полю «день», увеличивая поля «месяц» и «год» по мере необходимости, чтобы результат оставался действительным. Результат является недействительным только в том случае, если максимальный/минимальный год превышен.

Например, 2008-12-31 плюс одна неделя даст 2009-01-07.

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

Параметры:
weeks - добавляемые недели, могут быть отрицательными
Возвращает:
копию OffsetDateTime, основанную на этой дате и времени, с добавленными неделями, не null
Исключение:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

plusDays

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

Этот метод добавляет указанное значение к полю «день», увеличивая поля «месяц» и «год» по мере необходимости, чтобы результат оставался действительным. Результат является недействительным только в том случае, если максимальный/минимальный год превышен.

Например, 2008-12-31 плюс один день даст 2009-01-01.

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

Параметры:
days - добавляемые дни, могут быть отрицательными
Возвращает:
копию OffsetDateTime, основанную на этой дате и времени, с добавленными днями, не null
Исключение:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

plusHours

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

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

Параметры:
hours - добавляемые часы, могут быть отрицательными
Возвращает:
копию OffsetDateTime , основанную на этой дате и времени, с добавленными часами, не null
Исключение:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

plusMinutes

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

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

Параметры:
minutes - добавляемые минуты, могут быть отрицательными
Возвращает:
копию OffsetDateTime , основанную на этой дате и времени, с добавленными минутами, не null
Исключение:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

plusSeconds

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

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

Параметры:
seconds - добавляемые секунды, могут быть отрицательными
Возвращает:
копию OffsetDateTime , основанную на этой дате и времени, с добавленными секундами, не null
Исключение:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

plusNanos

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

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

Параметры:
nanos - добавляемые наносекунды, могут быть отрицательными
Возвращает:
копию OffsetDateTime , основанную на этой дате и времени, с добавленными наносекундами, не null
Исключение:
DateTimeException - если единицу измерения нельзя добавить к этому типу

минус

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

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

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

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

Specified by:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - значение для вычитания, не null
Возвращает:
копию даты и времени, основанную на этой дате и времени, с произведённым вычитанием, не null
Исключение:
DateTimeException - если вычитание невозможно
ArithmeticException - если происходит переполнение числового значения

minus

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

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

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

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

Specified by:
minus в интерфейсе Temporal
Parameters:
amountToSubtract - количество единиц измерения для вычитания из результата, может быть отрицательным
unit - единица измерения количества для вычитания, не null
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенным указанным количеством, не null
Throws:
DateTimeException - если вычитание невозможно
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - если происходит переполнение числового значения

minusYears

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

Этот метод вычитает указанное количество из поля «год» в три шага:

  1. Вычитает входные годы из поля «год»
  2. Проверяет, является ли полученная дата недействительной
  3. Если необходимо, корректирует день месяца до последнего действительного дня

Например, 2008-02-29 (високосный год) минус один год приведет к недействительной дате 2007-02-29 (обычный год). Вместо возвращения недействительного результата выбирается последний действительный день месяца, 2007-02-28.

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

Parameters:
years - количество лет для вычитания, может быть отрицательным
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенными годами, не null
Throws:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

minusMonths

public OffsetDateTime minusMonths(long months)
Возвращает копию этого объекта даты и времени с вычтенным указанным числом месяцев.

Этот метод вычитает указанное количество из поля «месяц» в три шага:

  1. Вычитает входные месяцы из поля «месяц года»
  2. Проверяет, является ли полученная дата недействительной
  3. Если необходимо, корректирует день месяца до последнего действительного дня

Например, 2007-03-31 минус один месяц приведет к недействительной дате 2007-02-31. Вместо возвращения недействительного результата выбирается последний действительный день месяца, 2007-02-28.

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

Parameters:
months - количество месяцев для вычитания, может быть отрицательным
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенными месяцами, не null
Throws:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

minusWeeks

public OffsetDateTime minusWeeks(long weeks)
Возвращает копию этого объекта даты и времени с вычтенным указанным числом недель.

Этот метод вычитает указанное количество недель из поля «день», уменьшая поля «месяц» и «год» по мере необходимости, чтобы результат оставался действительным. Результат является недействительным только в том случае, если максимальный/минимальный год превышен.

Например, 2009-01-07 минус одна неделя приведет к 2008-12-31.

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

Parameters:
weeks - количество недель для вычитания, может быть отрицательным
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенными неделями, не null
Throws:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

minusDays

public OffsetDateTime minusDays(long days)
Возвращает копию этого объекта даты и времени с вычтенным указанным числом дней.

Этот метод вычитает указанное количество из поля «день», уменьшая поля «месяц» и «год» по мере необходимости, чтобы результат оставался действительным. Результат является недействительным только в том случае, если максимальный/минимальный год превышен.

Например, 2009-01-01 минус один день приведет к 2008-12-31.

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

Parameters:
days - количество дней для вычитания, может быть отрицательным
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенными днями, не null
Throws:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

minusHours

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

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

Parameters:
hours - количество часов для вычитания, может быть отрицательным
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенными часами, не null
Throws:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

minusMinutes

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

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

Parameters:
minutes - количество минут для вычитания, может быть отрицательным
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенными минутами, не null
Throws:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

minusSeconds

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

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

Parameters:
seconds - количество секунд для вычитания, может быть отрицательным
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенными секундами, не null
Throws:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

minusNanos

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

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

Parameters:
nanos - количество наносекунд для вычитания, может быть отрицательным
Returns:
новая дата и время, основанная на этом объекте даты и времени с вычтенными наносекундами, не null
Throws:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

query

public <R> R query(TemporalQuery<R> query)
Запрашивает этот объект даты и времени, используя указанный запрос.

Запрашивает этот объект даты и времени, используя указанный объект стратегии запроса. Объект запроса определяет логику, используемую для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.

Результат этого метода получается путем вызова метода 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.EPOCH_DAY, ChronoField.NANO_OF_DAY и ChronoField.OFFSET_SECONDS в качестве полей.

В большинстве случаев проще использовать обратный порядок вызова, используя Temporal.with(TemporalAdjuster):

   // these two lines are equivalent, but the second approach is recommended
   temporal = thisOffsetDateTime.adjustInto(temporal);
   temporal = temporal.with(thisOffsetDateTime);
 

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

Specified by:
adjustInto в интерфейсе TemporalAdjuster
Parameters:
temporal - целевой объект, который нужно скорректировать, не null
Returns:
скорректированный объект, не null
Throws:
DateTimeException - если корректировка невозможна
ArithmeticException - если происходит переполнение числового значения

until

public long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет время до другой даты и времени в указанных единицах измерения.

Вычисляет временной интервал между двумя OffsetDateTime объектами в терминах одной TemporalUnit. Начальная и конечная точки — это this и указанное время. Результат будет отрицательным, если конец предшествует началу. Например, количество дней между двумя моментами времени можно рассчитать с помощью startDateTime.until(endDateTime, DAYS).

Temporal объект, переданный в этот метод, преобразуется в OffsetDateTime с помощью from(TemporalAccessor). Если смещение отличается между двумя моментами времени, указанная конечная дата и время нормализуются, чтобы иметь такое же смещение, как и эта дата и время.

Вычисление возвращает целое число, представляющее количество полных единиц между двумя моментами времени. Например, количество месяцев между 2012-06-15T00:00Z и 2012-08-14T23:59Z будет только одним месяцем, так как до двух месяцев не хватает одной минуты.

Существуют два равнозначных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):

   // these two lines are equivalent
   amount = start.until(end, MONTHS);
   amount = MONTHS.between(start, end);
 
Выбор следует делать, исходя из того, что делает код более удобочитаемым.

Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы измерения NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS и HALF_DAYS, DAYS, WEEKS, MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Другие ChronoUnit значения приведут к исключению.

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

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

Specified by:
until в интерфейсе Temporal
Parameters:
endExclusive - конечная дата, исключающая, которая преобразуется в OffsetDateTime, не null
unit - единица измерения для измерения величины, не null
Returns:
количество времени между этой датой и временем и конечной датой и временем
Throws:
DateTimeException - если величину нельзя вычислить, или конечный временной объект нельзя преобразовать в OffsetDateTime
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - если происходит переполнение числовых значений

format

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

Эта дата и время будут переданы в форматер для получения строки.

Parameters:
formatter - используемый форматер, не null
Returns:
строка отформатированной даты и времени, не null
Throws:
DateTimeException - если при печати произошла ошибка

atZoneSameInstant

public ZonedDateTime atZoneSameInstant(ZoneId zone)
Объединяет эту дату и время с часовым поясом, создавая ZonedDateTime, гарантируя, что результат имеет тот же момент времени.

Возвращает ZonedDateTime , сформированную из этой даты и времени и указанного часового пояса. Это преобразование игнорирует видимые локальные дату и время и использует основной момент времени вместо этого. Это позволяет избежать проблем с разрывами или перекрытиями локальной временной шкалы. Результат может иметь разные значения для таких полей, как час, минута, а даже день.

Чтобы попытаться сохранить значения полей, используйте atZoneSimilarLocal(ZoneId). Чтобы использовать смещение в качестве идентификатора часового пояса, используйте toZonedDateTime().

Parameters:
zone - используемый часовой пояс, не null
Returns:
объект zoned date-time, сформированный из этой даты и времени, не null

atZoneSimilarLocal

public ZonedDateTime atZoneSimilarLocal(ZoneId zone)
Объединяет эту дату и время с часовым поясом, создавая ZonedDateTime, пытаясь сохранить ту же локальную дату и время.

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

Правила часового пояса, такие как летнее время, означают, что не каждое время на локальной временной шкале существует. Если локальная дата и время находятся в разрыве или перекрытии в соответствии с правилами, используется решатель для определения результирующего локального времени и смещения. Этот метод использует ZonedDateTime.ofLocal(LocalDateTime, ZoneId, ZoneOffset), чтобы сохранить смещение из этого экземпляра, если это возможно.

Более точный контроль над разрывами и перекрытиями доступен двумя способами. Если вы просто хотите использовать более позднее смещение при перекрытиях, вызовите ZonedDateTime.withLaterOffsetAtOverlap() сразу после этого метода.

Чтобы создать zoned date-time в тот же момент, независимо от локальной временной шкалы, используйте atZoneSameInstant(ZoneId). Чтобы использовать смещение в качестве идентификатора часового пояса, используйте toZonedDateTime().

Parameters:
zone - используемый часовой пояс, не null
Returns:
объект zoned date-time, сформированный из этой даты и самого раннего действительного времени для часового пояса, не null

toOffsetTime

public OffsetTime toOffsetTime()
Преобразует эту дату и время в OffsetTime.

Возвращает offset time с тем же локальным временем и смещением.

Returns:
объект OffsetTime, представляющий время и смещение, не null

toZonedDateTime

public ZonedDateTime toZonedDateTime()
Преобразует эту дату и время в ZonedDateTime используя смещение в качестве идентификатора часового пояса.

Создаёт наипростейший возможный ZonedDateTime, используя смещение в качестве идентификатора часового пояса.

Чтобы контролировать используемый часовой пояс, см. atZoneSameInstant(ZoneId) и atZoneSimilarLocal(ZoneId).

Returns:
объект zoned date-time, представляющий ту же локальную дату и время и смещение, не null

toInstant

public Instant toInstant()
Преобразует эту дату и время в Instant.

Возвращает Instant, представляющий ту же точку на временной шкале, что и эта дата и время.

Returns:
объект Instant, представляющий тот же момент времени, не null

toEpochSecond

public long toEpochSecond()
Преобразует эту дату и время в количество секунд с эпохи 1970-01-01T00:00:00Z.

Это позволяет преобразовать эту дату и время в значение поля epoch-seconds. Это в первую очередь предназначено для преобразований низкого уровня, а не для общего применения.

Returns:
количество секунд с эпохи 1970-01-01T00:00:00Z

compareTo

public int compareTo(OffsetDateTime other)
Сравнивает эту дату и время с другой датой и временем.

Сравнение основано на моменте времени, а затем на локальной дате и времени. Оно «согласуется с equals», как определено в Comparable.

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

  1. 2008-12-03T10:30+01:00
  2. 2008-12-03T11:00+01:00
  3. 2008-12-03T12:00+02:00
  4. 2008-12-03T11:30+01:00
  5. 2008-12-03T12:00+01:00
  6. 2008-12-03T12:30+01:00
Значения #2 и #3 представляют один и тот же момент на временной шкале. Когда два значения представляют один и тот же момент, локальная дата и время сравниваются для их различения. Этот шаг необходим для согласования порядка с equals().
Specified by:
compareTo в интерфейсе Comparable<OffsetDateTime>
Parameters:
other - другая дата и время для сравнения, не null
Returns:
значение сравнения, то есть сравнение с моментом времени other, если они не равны; и если равны моменту времени other, сравнение локальной даты и времени other
See Also:
  • isBefore(java.time.OffsetDateTime)
  • isAfter(java.time.OffsetDateTime)

isAfter

public boolean isAfter(OffsetDateTime other)
Проверяет, является ли момент времени этой даты и времени после момента времени указанной даты и времени.

Этот метод отличается от сравнения в compareTo(java.time.OffsetDateTime) и equals(java.lang.Object) тем, что сравнивает только момент времени даты и времени. Это эквивалентно использованию dateTime1.toInstant().isAfter(dateTime2.toInstant());.

Parameters:
other - другая дата и время для сравнения, не null
Returns:
true, если это после момента времени указанной даты и времени

isBefore

public boolean isBefore(OffsetDateTime other)
Проверяет, является ли момент времени этой даты и времени до момента времени указанной даты и времени.

Этот метод отличается от сравнения в compareTo(java.time.OffsetDateTime) тем, что сравнивает только момент времени даты и времени. Это эквивалентно использованию dateTime1.toInstant().isBefore(dateTime2.toInstant());.

Parameters:
other - другая дата и время для сравнения, не null
Returns:
true, если это до момента времени указанной даты и времени

isEqual

public boolean isEqual(OffsetDateTime other)
Проверяет, равен ли момент времени этой даты и времени указанной даты и времени.

Этот метод отличается от сравнения в compareTo(java.time.OffsetDateTime) и equals(java.lang.Object) тем, что он сравнивает только момент времени даты и времени. Это эквивалентно использованию dateTime1.toInstant().equals(dateTime2.toInstant());.

Parameters:
other - другая дата и время для сравнения, не null
Returns:
true, если момент времени равен моменту времени указанной даты и времени

equals

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

Сравнение основано на локальной дате и времени и смещении. Для сравнения одинакового момента во временной шкале используйте isEqual(java.time.OffsetDateTime). Сравниваются только объекты типа OffsetDateTime, другие типы возвращают false.

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, например 2007-12-03T10:15:30+01:00.

Вывод будет одним из следующих форматов:

  • uuuu-MM-dd'T'HH:mmXXXXX
  • uuuu-MM-dd'T'HH:mm:ssXXXXX
  • uuuu-MM-dd'T'HH:mm:ss.SSSXXXXX
  • uuuu-MM-dd'T'HH:mm:ss.SSSSSSXXXXX
  • uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXXX
Используемый формат будет самым коротким, который выводит полное значение времени, где пропущенные части подразумеваются равными нулю. Вывод совместим с ISO 8601, если секунды в смещении равны нулю.
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/OffsetDateTime.html

Spec-Zone.ru

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