Класс 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 используются для моделирования данных в простых приложениях. Этот класс можно использовать при моделировании концепций даты и времени более подробно или при взаимодействии с базой данных или сетевым протоколом.

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

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

Поля

Модификатор и тип Поле Описание
static OffsetDateTime MAX

Максимально допустимое OffsetDateTime, '+999999999-12-31T23:59:59.999999999-18:00'.

static 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/Greenwich просто, так как для каждого момента времени существует только одно допустимое смещение.

Параметры:
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 — в противном случае

Диапазон

public ValueRange range(TemporalField field)

Получает диапазон допустимых значений для указанного поля.

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

Если поле является ChronoField, то запрос обрабатывается здесь. supported fields вернут соответствующие экземпляры диапазонов. Все другие ChronoField экземпляры вызовут исключение UnsupportedTemporalTypeException.

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

Определено в:
range в интерфейсе TemporalAccessor
Параметры:
field - поле для запроса диапазона, не null
Возвращает:
диапазон допустимых значений для поля, не null
Исключения:
DateTimeException - если диапазон для поля получить не удается
UnsupportedTemporalTypeException - если поле не поддерживается

Получить

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

withOffsetSameInstant

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)

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

Это возвращает 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 — если возникает переполнение числовых данных

withYear

public OffsetDateTime withYear(int year)

Возвращает копию этого OffsetDateTime с изменённым годом.

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

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

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

withMonth

public OffsetDateTime withMonth(int month)

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

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

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

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

withDayOfMonth

public OffsetDateTime withDayOfMonth(int dayOfMonth)

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

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

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

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

withDayOfYear

public OffsetDateTime withDayOfYear(int dayOfYear)

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

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

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

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

withHour

public OffsetDateTime withHour(int hour)

Возвращает копию этой OffsetDateTime с изменённым часом дня.

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

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

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

withMinute

public OffsetDateTime withMinute(int minute)

Возвращает копию этой OffsetDateTime с изменённой минутой часа.

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

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

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

withSecond

public OffsetDateTime withSecond(int second)

Возвращает копию этого OffsetDateTime с изменённой второй частью минуты.

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

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

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

withNano

public OffsetDateTime withNano(int nanoOfSecond)

Возвращает копию этого OffsetDateTime с изменённой наносекундной частью секунды.

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

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

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

truncatedTo

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 с добавлением указанного количества наносекунд.

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

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

minus

public OffsetDateTime minus(TemporalAmount amountToSubtract)

Возвращает копию этой даты и времени с вычтенным указанным количеством.

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

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

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

Specified by:
minus in interface Temporal
Parameters:
amountToSubtract - количество для вычитания, не null
Returns:
an OffsetDateTime на основе этой даты и времени с выполненным вычитанием, не null
Throws:
DateTimeException - если вычитание не может быть выполнено
ArithmeticException - если происходит арифметическое переполнение

minus

public OffsetDateTime minus(long amountToSubtract,
                            TemporalUnit unit)

Возвращает копию этой даты и времени с вычтенным указанным количеством.

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

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

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

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

minusYears

public OffsetDateTime minusYears(long years)

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

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

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

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

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

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

minusMonths

public OffsetDateTime minusMonths(long months)

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

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

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

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

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

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

minusWeeks

public OffsetDateTime minusWeeks(long weeks)

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

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

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

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

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

minusDays

public OffsetDateTime minusDays(long days)

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

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

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

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

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

minusHours

public OffsetDateTime minusHours(long hours)

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

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

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

minusMinutes

public OffsetDateTime minusMinutes(long minutes)

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

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

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

minusSeconds

public OffsetDateTime minusSeconds(long seconds)

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

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

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

minusNanos

public OffsetDateTime minusNanos(long nanos)

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

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

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

query

public <R> R query(TemporalQuery<R> query)

Запрашивает эту дату и время с использованием указанного запроса.

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

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

Specified by:
query in interface 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);

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

Указано:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal - целевой объект для корректировки, не null
Возвращает:
скорректированный объект, не null
Бросает:
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 в качестве первого аргумента и преобразованный входной временной объект - в качестве второго.

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

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

format

public String format(DateTimeFormatter formatter)

Форматирует эту дату и время с использованием указанного форматера.

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

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

atZoneSameInstant

public ZonedDateTime atZoneSameInstant(ZoneId zone)

Комбинирует эту дату и время с часовым поясом, чтобы создать ZonedDateTime, гарантируя, что результат имеет тот же момент времени.

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

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

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

atZoneSimilarLocal

public ZonedDateTime atZoneSimilarLocal(ZoneId zone)

Комбинирует эту дату и время с часовым поясом, чтобы создать ZonedDateTime и пытается сохранить ту же локальную дату и время.

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

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

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

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

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

toOffsetTime

public OffsetTime toOffsetTime()

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

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

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

toZonedDateTime

public ZonedDateTime toZonedDateTime()

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

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

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

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

toInstant

public Instant toInstant()

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

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

Возвращает:
Instant представляющий тот же момент времени, не null

toEpochSecond

public long toEpochSecond()

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

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

Возвращает:
количество секунд с эпохи 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().
Указано:
compareTo в интерфейсе Comparable<OffsetDateTime>
Параметры:
other - другая дата и время для сравнения, не null
Возвращает:
значение компаратора, отрицательное, если меньше, положительное, если больше

isAfter

public boolean isAfter(OffsetDateTime other)

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

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

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

isBefore

public boolean isBefore(OffsetDateTime other)

Проверяет, является ли момент времени этой даты и времени до момента времени указанной даты и времени.

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

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

isEqual

public boolean isEqual(OffsetDateTime other)

Проверяет, равен ли момент времени этой даты и времени моменту времени указанной даты и времени.

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

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

equals

public boolean equals(Object obj)

Проверяет, равна ли эта дата-время другой дате-времени.

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

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

hashCode

public int hashCode()

Хеш-код для этой даты-времени.

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

toString

public String toString()

Выводит эту дату-время в формате String, например 2007-12-03T10:15:30+01:00.

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

  • 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
Использованный формат будет самым коротким, который выводит полное значение времени, где пропущенные части подразумеваются равными нулю.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этой даты-времени, не null

© 1993, 2020, 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/11/docs/api/java.base/java/time/OffsetDateTime.html

Spec-Zone .ru
спецификации, руководства, описания, API