Класс 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 используются для моделирования данных в простых приложениях. Этот класс можно использовать при моделировании концепций даты и времени более подробно или при взаимодействии с базой данных или сетевым протоколом.
Это классовый тип данных; использование операций, чувствительных к идентификатору (включая равенство ссылок (==), хэш-код идентификатора или синхронизацию) на экземплярах OffsetDateTime может привести к непредсказуемым результатам и должно быть избегаемо. Для сравнений следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static OffsetDateTime | MAX | Максимально допустимое |
static OffsetDateTime | MIN | Минимально допустимое |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal | adjustInto(Temporal temporal) | Настраивает указанный временной объект так, чтобы он имел тот же смещение, дату и время, что и этот объект. |
ZonedDateTime | atZoneSameInstant(ZoneId zone) | Объединяет эту дату и время с часовым поясом, чтобы создать |
ZonedDateTime | atZoneSimilarLocal(ZoneId zone) | Объединяет эту дату и время с часовым поясом, чтобы создать |
int | compareTo(OffsetDateTime other) | Сравнивает эту дату и время с другой датой и временем. |
boolean | equals(Object obj) | Проверяет, равна ли эта дата и время другой дате и времени. |
String | format(DateTimeFormatter formatter) | Форматирует эту дату и время с использованием указанного форматировщика. |
static OffsetDateTime | from(TemporalAccessor temporal) | Получает экземпляр |
int | get(TemporalField field) | Получает значение указанного поля из этой даты и времени в качестве |
int | getDayOfMonth() | Получает поле дня месяца. |
DayOfWeek | getDayOfWeek() | Получает поле дня недели, которое является перечислением |
int | getDayOfYear() | Получает поле порядкового номера дня. |
int | getHour() | Получает поле часа дня. |
long | getLong(TemporalField field) | Получает значение указанного поля из этой даты и времени в виде |
int | getMinute() | Получает поле минуты часа. |
Month | getMonth() | Получает поле месяца года, используя перечисление |
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 | minusHours(long hours) | Возвращает копию этого |
OffsetDateTime | minusMinutes(long minutes) | Возвращает копию этого |
OffsetDateTime | minusMonths(long months) | Возвращает копию этого |
OffsetDateTime | minusNanos(long nanos) | Возвращает копию этого |
OffsetDateTime | minusSeconds(long seconds) | Возвращает копию этого |
OffsetDateTime | minusWeeks(long weeks) | Возвращает копию этого |
OffsetDateTime | minusYears(long years) | Возвращает копию этого |
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) | Получает экземпляр |
static OffsetDateTime | of(LocalDate date,
LocalTime time,
ZoneOffset offset) | Получает экземпляр |
static OffsetDateTime | of(LocalDateTime dateTime,
ZoneOffset offset) | Получает экземпляр |
static OffsetDateTime | ofInstant(Instant instant,
ZoneId zone) | Получает экземпляр |
static OffsetDateTime | parse(CharSequence text) | Получает экземпляр |
static OffsetDateTime | parse(CharSequence text,
DateTimeFormatter formatter) | Получает экземпляр |
OffsetDateTime | plus(long amountToAdd,
TemporalUnit unit) | Возвращает копию этой даты и времени с указанным значением, добавленным. |
OffsetDateTime | plus(TemporalAmount amountToAdd) | Возвращает копию этой даты и времени с указанным значением, добавленным. |
OffsetDateTime | plusDays(long days) | Возвращает копию этого OffsetDateTime с указанным количеством дней, добавленным. |
OffsetDateTime | plusHours(long hours) | Возвращает копию этого |
OffsetDateTime | plusMinutes(long minutes) | Возвращает копию этого |
OffsetDateTime | plusMonths(long months) | Возвращает копию этого |
OffsetDateTime | plusNanos(long nanos) | Возвращает копию этого |
OffsetDateTime | plusSeconds(long seconds) | Возвращает копию этого |
OffsetDateTime | plusWeeks(long weeks) | Возвращает копию этого OffsetDateTime с указанным количеством недель, добавленным. |
OffsetDateTime | plusYears(long years) | Возвращает копию этого |
<R> R | query(TemporalQuery<R> query) | Использует этот объект даты и времени с помощью указанного запроса. |
ValueRange | range(TemporalField field) | Получает диапазон допустимых значений для указанного поля. |
static Comparator<OffsetDateTime> | timeLineOrder() | Получает компаратор, сравнивающий два объекта |
long | toEpochSecond() | Преобразует эту дату и время в количество секунд с эпохи 1970-01-01T00:00:00Z. |
Instant | toInstant() | Преобразует эту дату и время в |
LocalDate | toLocalDate() | Получает |
|---|---|---|
LocalDateTime | toLocalDateTime() | Получает |
LocalTime | toLocalTime() | Получает |
OffsetTime | toOffsetTime() | Преобразует это время в |
String | toString() | Выводит это время как |
ZonedDateTime | toZonedDateTime() | Преобразует это время в |
OffsetDateTime | truncatedTo(TemporalUnit unit) | Возвращает копию этого |
long | until(Temporal endExclusive,
TemporalUnit unit) | Вычисляет время до другой даты и времени в терминах указанной единицы. |
OffsetDateTime | with(TemporalAdjuster adjuster) | Возвращает скорректированную копию этого времени. |
OffsetDateTime | with(TemporalField field,
long newValue) | Возвращает копию этого времени с указанным полем, установленным на новое значение. |
OffsetDateTime | withDayOfMonth(int dayOfMonth) | Возвращает копию этого |
OffsetDateTime | withDayOfYear(int dayOfYear) | Возвращает копию этого |
OffsetDateTime | withHour(int hour) | Возвращает копию этого |
OffsetDateTime | withMinute(int minute) | Возвращает копию этого |
OffsetDateTime | withMonth(int month) | Возвращает копию этого |
OffsetDateTime | withNano(int nanoOfSecond) | Возвращает копию этого |
OffsetDateTime | withOffsetSameInstant(ZoneOffset offset) | Возвращает копию этого |
OffsetDateTime | withOffsetSameLocal(ZoneOffset offset) | Возвращает копию этого |
OffsetDateTime | withSecond(int second) | Возвращает копию этого |
OffsetDateTime | withYear(int year) | Возвращает копию этого |
Методы, объявленные в классе 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 с добавлением указанного числа лет.
Этот метод добавляет указанное количество к полю «год» в три этапа:
- Добавить введённые годы к полю «год»
- Проверить, является ли полученная дата недействительной
- Если необходимо, скорректировать день месяца до последнего допустимого дня
Например, 2008-02-29 (високосный год) плюс один год приведет к недействительной дате 2009-02-29 (обычный год). Вместо возвращения недействительного результата вместо этого выбирается последний допустимый день месяца, 2009-02-28.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
years- годы для добавления, могут быть отрицательными - Возвращает:
- объект
OffsetDateTimeна основе этой даты и времени с добавленными годами, не null - Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusMonths
public OffsetDateTime plusMonths(long months)
Возвращает копию этого OffsetDateTime с добавлением указанного количества месяцев.
Этот метод добавляет указанное количество к полю «месяц» в три этапа:
- Добавить введённые месяцы к полю «месяц года»
- Проверить, является ли полученная дата недействительной
- Если необходимо, скорректировать день месяца до последнего допустимого дня
Например, 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:
-
minusin interfaceTemporal - Parameters:
-
amountToSubtract- количество для вычитания, не null - Returns:
- an
OffsetDateTimeна основе этой даты и времени с выполненным вычитанием, не null - Throws:
-
DateTimeException- если вычитание не может быть выполнено -
ArithmeticException- если происходит арифметическое переполнение
minus
public OffsetDateTime minus(long amountToSubtract,
TemporalUnit unit) Возвращает копию этой даты и времени с вычтенным указанным количеством.
Это возвращает OffsetDateTime, основанный на этом, с количеством в терминах вычтенной единицы. Если вычесть количество невозможно, потому что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Этот метод эквивалентен plus(long, TemporalUnit) с отрицательным значением количества. См. этот метод для полного описания того, как работает сложение, а значит и вычитание.
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Specified by:
-
minusin interfaceTemporal - Parameters:
-
amountToSubtract- количество единицы для вычитания из результата, может быть отрицательным -
unit- единица количества для вычитания, не null - Returns:
- an
OffsetDateTimeна основе этой даты и времени с вычтенным указанным количеством, не null - Throws:
-
DateTimeException- если вычитание не может быть выполнено -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит арифметическое переполнение
minusYears
public OffsetDateTime minusYears(long years)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством лет.
Этот метод вычитает указанное количество из поля лет в три шага:
- Вычесть введенные годы из поля года
- Проверить, будет ли результирующая дата недействительной
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, 2008-02-29 (високосный год) минус один год приведет к недействительной дате 2007-02-29 (обычный год). Вместо возвращения недействительного результата, вместо этого выбирается последний допустимый день месяца, 2007-02-28.
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Parameters:
-
years- годы для вычитания, могут быть отрицательными - Returns:
- an
OffsetDateTimeна основе этой даты и времени с вычтенными годами, не null - Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusMonths
public OffsetDateTime minusMonths(long months)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством месяцев.
Этот метод вычитает указанное количество из поля месяцев в три шага:
- Вычесть введенные месяцы из поля месяца года
- Проверить, будет ли результирующая дата недействительной
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, 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:
-
queryin interfaceTemporalAccessor - 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.
Например, следующий порядок компаратора:
2008-12-03T10:30+01:002008-12-03T11:00+01:002008-12-03T12:00+02:002008-12-03T11:30+01:002008-12-03T12:00+01:002008-12-03T12:30+01:00
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:mmXXXXXuuuu-MM-dd'T'HH:mm:ssXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSSSSXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXXX
© 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