Spec-Zone.ru › OpenJDK 24

Класс 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
Минимаемая поддерживаемая OffsetDateTime, '-999999999-01-01T00:00:00+18:00'. Это локальное время — полночь в начале минимальной даты с максимальным смещением (большие смещения — более раннее время на временной шкале). Это сочетание LocalDateTime.MIN и ZoneOffset.MAX. Это можно использовать в приложении как дату и время «далёкого прошлого».

MAX

public static final OffsetDateTime MAX
Максимальная поддерживаемая OffsetDateTime, '+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 в качестве аргумента. Поддерживается ли поле, определяется полем.

Specified by:
isSupported в интерфейсе TemporalAccessor
Parameters:
field - поле для проверки, null возвращает false
Returns:
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 в качестве аргумента. Поддерживается ли интервал, определяется интервалом.

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, EPOCH_DAY, PROLEPTIC_MONTH и INSTANT_SECONDS, которые слишком велики для хранения в 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 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).

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

Parameters:
offset - смещение часового пояса для изменения, не null
Returns:
объект 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 - если происходит переполнение чисел

с

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

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

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

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

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

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

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

Все остальные ChronoField экземпляры выбросят исключение UnsupportedTemporalTypeException.

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

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

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

сГодом

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

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

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

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

сМесяцем

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

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

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

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

сДнёмМесяца

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

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

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

Параметры:
dayOfMonth - день месяца для установки в результате, от 1 до 28-31
Возвращает:
OffsetDateTime, основанный на этой дате и времени с запрошенным днём, не null
Исключение:
DateTimeException - если значение дня месяца недействительно или если день месяца недействителен для месяца

сДнёмГода

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

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

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

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

сЧасом

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

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

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

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

сМинутой

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

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

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

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

сСекундой

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

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

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

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

сНаносекундами

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

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

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

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

обрезанныйДо

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

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

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

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

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

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

plus

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

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

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

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

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

plus

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

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

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

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

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

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

plusYears

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

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

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

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

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

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

plusMonths

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

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

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

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

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

Параметры:
months - количество месяцев для добавления, может быть отрицательным
Возвращает:
новая OffsetDateTime, основанная на этой дате и времени с добавленными месяцами, не 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 - если единица измерения не может быть добавлена к этому типу

minus

public OffsetDateTime minus(TemporalAmount amountToSubtract)
Возвращает копию этого объекта date-time с вычтенным указанным значением.

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

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

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

Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - значение для вычитания, не null
Возвращает:
an OffsetDateTime на основе этого объекта date-time с выполненным вычитанием, не null
Исключения:
DateTimeException - если вычитание не может быть выполнено
ArithmeticException - если происходит переполнение числового значения

minus

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

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

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

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

Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - значение единицы для вычитания из результата, может быть отрицательным
unit - единица значения для вычитания, не null
Возвращает:
an OffsetDateTime на основе этого объекта date-time с вычтенным указанным значением, не null
Исключения:
DateTimeException - если вычитание не может быть выполнено
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если происходит переполнение числового значения

minusYears

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

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

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

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

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

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

minusMonths

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

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

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

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

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

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

minusWeeks

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

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

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

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

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

minusDays

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

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

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

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

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

minusHours

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

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

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

minusMinutes

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

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

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

minusSeconds

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

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

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

minusNanos

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

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

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

query

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

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

Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передавая this в качестве аргумента.

Указано в:
query в интерфейсе TemporalAccessor
Параметры типа:
R - тип результата
Параметры:
query - запрос для вызова, не null
Возвращает:
результат запроса, может быть возвращено null (определяется запросом)
Исключения:
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, сформированный из этой даты-времени и указанного часового пояса. Это преобразование игнорирует видимую локальную дату-время и вместо этого использует основной момент времени. Это предотвращает проблемы с локальными разрывами или перекрытиями временной шкалы. Результат может иметь разные значения для полей, таких как час, минута и даже день.

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

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

atZoneSimilarLocal

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

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

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

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

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

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

toOffsetTime

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

Возвращает время со смещением с тем же локальным временем и сдвигом.

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

toZonedDateTime

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

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

Для управления используемым часовым поясом см. atZoneSameInstant(ZoneId) и atZoneSimilarLocal(ZoneId).

Returns:
объект временной зоны, представляющий ту же локальную дату-время и сдвиг, не 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, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/OffsetDateTime.html

Spec-Zone.ru

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