Класс 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 все хранят мгновение на временной шкале с точностью до наносекунд. OffsetDateTime — самое простое, просто представляющее мгновение. 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/Гринвича простое, поскольку для каждого мгновения существует только одно допустимое смещение.
- Параметры:
-
instant- мгновение для создания даты-времени, не null -
zone- часовой пояс, который может быть смещением, не null - Возвращает:
- дата-время со смещением, не null
- Исключение:
-
DateTimeException- если результат выходит за поддерживаемый диапазон
from
public static OffsetDateTime from(TemporalAccessor temporal)
Получает экземпляр OffsetDateTime из временного объекта.
Это получает дату-время со смещением на основе указанного временного объекта. TemporalAccessor представляет собой произвольный набор информации о дате и времени, который эта фабрика преобразует в экземпляр OffsetDateTime.
Преобразование сначала получит ZoneOffset из временного объекта. Затем попытается получить LocalDateTime, при необходимости перейдя к Instant. Результат будет комбинацией ZoneOffset с LocalDateTime или Instant.
Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса через ссылку на метод, OffsetDateTime::from.
- Параметры:
-
temporal- временной объект для преобразования, не null - Возвращает:
- дата-время со смещением, не null
- Исключение:
-
DateTimeException- если невозможно преобразовать вOffsetDateTime
parse
public static OffsetDateTime parse(CharSequence text)
Получает экземпляр OffsetDateTime из текстовой строки, такой как 2007-12-03T10:15:30+01:00.
Строка должна представлять собой допустимую дату-время и анализируется с помощью DateTimeFormatter.ISO_OFFSET_DATE_TIME.
- Параметры:
-
text- текст для анализа, такой как "2007-12-03T10:15:30+01:00", не null - Возвращает:
- проанализированная дата-время со смещением, не null
- Исключение:
-
DateTimeParseException- если текст не может быть проанализирован
parse
public static OffsetDateTime parse(CharSequence text,
DateTimeFormatter formatter) Получает экземпляр OffsetDateTime из текстовой строки с использованием определённого форматера.
Текст анализируется с помощью форматера, возвращая дату-время.
- Параметры:
-
text- текст для анализа, не null -
formatter- используемый форматер, не null - Возвращает:
- проанализированная дата-время со смещением, не null
- Исключение:
-
DateTimeParseException- если текст не может быть проанализирован
isSupported
public boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
Это проверяет, можно ли запросить значение указанного поля для этой даты и времени. Если false, то вызов методов range, get и with(TemporalField, long) вызовет исключение.
Если поле является ChronoField, то запрос реализуется здесь. Поддерживаемые поля:
-
NANO_OF_SECOND -
NANO_OF_DAY -
MICRO_OF_SECOND -
MICRO_OF_DAY -
MILLI_OF_SECOND -
MILLI_OF_DAY -
SECOND_OF_MINUTE -
SECOND_OF_DAY -
MINUTE_OF_HOUR -
MINUTE_OF_DAY -
HOUR_OF_AMPM -
CLOCK_HOUR_OF_AMPM -
HOUR_OF_DAY -
CLOCK_HOUR_OF_DAY -
AMPM_OF_DAY -
DAY_OF_WEEK -
ALIGNED_DAY_OF_WEEK_IN_MONTH -
ALIGNED_DAY_OF_WEEK_IN_YEAR -
DAY_OF_MONTH -
DAY_OF_YEAR -
EPOCH_DAY -
ALIGNED_WEEK_OF_MONTH -
ALIGNED_WEEK_OF_YEAR -
MONTH_OF_YEAR -
PROLEPTIC_MONTH -
YEAR_OF_ERA -
YEAR -
ERA -
INSTANT_SECONDS -
OFFSET_SECONDS
ChronoField возвращают false. Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.isSupportedBy(TemporalAccessor) с this в качестве аргумента. Поддерживается ли поле, определяется самим полем.
- Specified by:
-
isSupportedв интерфейсеTemporalAccessor - Parameters:
-
field- поле для проверки, null возвращает false - Returns:
- true, если поле поддерживается в этой дате и времени, false, если нет
isSupported
public boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанный интервал.
Это проверяет, можно ли добавить или вычесть указанный интервал из этой даты и времени. Если false, то вызов методов plus(long, TemporalUnit) и minus вызовет исключение.
Если интервал является ChronoUnit, то запрос реализуется здесь. Поддерживаемые интервалы:
-
NANOS -
MICROS -
MILLIS -
SECONDS -
MINUTES -
HOURS -
HALF_DAYS -
DAYS -
WEEKS -
MONTHS -
YEARS -
DECADES -
CENTURIES -
MILLENNIA -
ERAS
ChronoUnit возвращают false. Если интервал не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.isSupportedBy(Temporal) с this в качестве аргумента. Поддерживается ли интервал, определяется им самим.
- Specified by:
-
isSupportedв интерфейсеTemporal - Parameters:
-
unit- интервал для проверки, null возвращает false - Returns:
- true, если интервал может быть добавлен/вычтен, false, если нет
range
public ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
Объект диапазона выражает минимальное и максимальное допустимые значения для поля. Эта дата и время используются для повышения точности возвращаемого диапазона. Если невозможно вернуть диапазон, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет соответствующие экземпляры диапазона. Все остальные ChronoField экземпляры выбросят исключение UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.rangeRefinedBy(TemporalAccessor) с this в качестве аргумента. Возможен ли запрос диапазона, определяется полем.
- Specified by:
-
rangeв интерфейсеTemporalAccessor - Parameters:
-
field- поле, для которого запрашивается диапазон, не null - Returns:
- диапазон допустимых значений для поля, не null
- Throws:
-
DateTimeException- если диапазон для поля получить невозможно -
UnsupportedTemporalTypeException- если поле не поддерживается
get
public int get(TemporalField field)
Получает значение указанного поля из этой даты и времени как int.
Это запрос значения указанного поля для этой даты и времени. Возвращаемое значение всегда будет находиться в пределах допустимого диапазона значений для поля. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет допустимые значения на основе этой даты и времени, за исключением NANO_OF_DAY, MICRO_OF_DAY, EPOCH_DAY, PROLEPTIC_MONTH и INSTANT_SECONDS, которые слишком велики для хранения в int и вызовут исключение DateTimeException. Все остальные ChronoField экземпляры выбросят исключение UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor) с this в качестве аргумента. Возможно ли получить значение и что оно представляет, определяется полем.
- Specified by:
-
getв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение для поля
- Throws:
-
DateTimeException- если значение для поля получить невозможно или значение выходит за пределы диапазона допустимых значений для поля -
UnsupportedTemporalTypeException- если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException- если происходит переполнение числовых типов
getLong
public long getLong(TemporalField field)
Получает значение указанного поля из этой даты и времени как long.
Это запрос значения указанного поля для этой даты и времени. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет допустимые значения на основе этой даты и времени. Все остальные ChronoField экземпляры выбросят исключение UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor) с this в качестве аргумента. Возможно ли получить значение и что оно представляет, определяется полем.
- Specified by:
-
getLongв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение для поля
- Throws:
-
DateTimeException- если значение для поля получить невозможно -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числовых типов
getOffset
public ZoneOffset getOffset()
Получает смещение часового пояса, например '+01:00'.
Это смещение локальной даты и времени от UTC/Гринвича.
- Returns:
- смещение часового пояса, не null
withOffsetSameLocal
public OffsetDateTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого OffsetDateTime со специфицированным смещением, гарантируя, что результат имеет ту же локальную дату и время.
Этот метод возвращает объект с тем же LocalDateTime и указанным ZoneOffset. Вычисления не требуются и не выполняются. Например, если это время представляет 2007-12-03T10:30+02:00 и указанное смещение - +03:00, тогда этот метод вернет 2007-12-03T10:30+03:00.
Чтобы учесть разницу во времени и скорректировать поля времени, используйте withOffsetSameInstant(java.time.ZoneOffset).
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Parameters:
-
offset- смещение часового пояса, на которое следует изменить, не null - Returns:
- объект
OffsetDateTimeна основе этой даты и времени с запрошенным смещением, не null
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 с добавлением указанного числа дней.
Этот метод добавляет указанное количество к полю «дни», увеличивая поля «месяц» и «год» по мере необходимости, чтобы результат оставался допустимым. Результат недопустим только в том случае, если превышен максимальный/минимальный год.
Например, 31 декабря 2008 года плюс один день даст 1 января 2009 года.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
days- количество дней для добавления, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с добавленными днями, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusHours
public OffsetDateTime plusHours(long hours)
Возвращает копию этого OffsetDateTime с добавлением указанного числа часов.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
hours- количество часов для добавления, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с добавленными часами, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusMinutes
public OffsetDateTime plusMinutes(long minutes)
Возвращает копию этого OffsetDateTime с добавлением указанного числа минут.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
minutes- количество минут для добавления, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с добавленными минутами, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusSeconds
public OffsetDateTime plusSeconds(long seconds)
Возвращает копию этого OffsetDateTime с добавлением указанного числа секунд.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
seconds- количество секунд для добавления, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с добавленными секундами, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusNanos
public OffsetDateTime plusNanos(long nanos)
Возвращает копию этого OffsetDateTime с добавлением указанного числа наносекунд.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
nanos- количество наносекунд для добавления, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с добавленными наносекундами, не null
- Исключения:
-
DateTimeException- если единица не может быть добавлена к этому типу
minus
public OffsetDateTime minus(TemporalAmount amountToSubtract)
Возвращает копию этой даты и времени с вычитанием указанного количества.
Это возвращает OffsetDateTime, основанный на этом, с вычитанием указанного количества. Количество обычно является Period или Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту количества вызовом TemporalAmount.subtractFrom(Temporal). Реализация количества свободна реализовать вычитание любым способом, однако обычно она вызывает minus(long, TemporalUnit). Обратитесь к документации реализации количества, чтобы определить, можно ли её успешно вычесть.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Определено:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- количество для вычитания, не null - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с произведённым вычитанием, не null
- Исключения:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если произошел переполнение числовых значений
minus
public OffsetDateTime minus(long amountToSubtract,
TemporalUnit unit) Возвращает копию этой даты и времени с вычитанием указанного количества.
Это возвращает OffsetDateTime, основанный на этом, с вычитанием количества в терминах единицы. Если вычитание невозможно из-за того, что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Этот метод эквивалентен plus(long, TemporalUnit) с отрицательным количеством. См. этот метод для полного описания того, как работает сложение, и, следовательно, вычитание.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Определено:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- количество единицы для вычитания из результата, может быть отрицательным -
unit- единица количества для вычитания, не null - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с вычтенным указанным количеством, не null
- Исключения:
-
DateTimeException- если вычитание невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если произошел переполнение числовых значений
minusYears
public OffsetDateTime minusYears(long years)
Возвращает копию этого OffsetDateTime с вычитанием указанного количества лет.
Этот метод вычитает указанное количество из поля «годы» в трех шагах:
- Вычесть введённые годы из поля «год»
- Проверить, является ли результирующая дата недопустимой
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, 29 февраля 2008 года (високосный год) минус один год даст недопустимую дату 29 февраля 2009 года (невисокосный год). Вместо возвращения недопустимого результата, вместо этого выбирается последний допустимый день месяца, 28 февраля 2009 года.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
years- количество лет для вычитания, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с вычтенными годами, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusMonths
public OffsetDateTime minusMonths(long months)
Возвращает копию этого OffsetDateTime с вычитанием указанного количества месяцев.
Этот метод вычитает указанное количество из поля «месяцы» в трех шагах:
- Вычесть введённые месяцы из поля «месяц»
- Проверить, является ли результирующая дата недопустимой
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, 31 марта 2007 года минус один месяц даст недопустимую дату 31 апреля 2007 года. Вместо возвращения недопустимого результата, вместо этого выбирается последний допустимый день месяца, 30 апреля 2007 года.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
months- количество месяцев для вычитания, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с вычтенными месяцами, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusWeeks
public OffsetDateTime minusWeeks(long weeks)
Возвращает копию этого OffsetDateTime с вычитанием указанного количества недель.
Этот метод вычитает указанное количество недель из поля «дни», уменьшая поля «месяц» и «год» по мере необходимости, чтобы результат оставался допустимым. Результат недопустим только в том случае, если превышен максимальный/минимальный год.
Например, 31 декабря 2008 года минус одна неделя даст 7 января 2009 года.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
weeks- количество недель для вычитания, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с вычтенными неделями, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusDays
public OffsetDateTime minusDays(long days)
Возвращает копию этого OffsetDateTime с вычитанием указанного числа дней.
Этот метод вычитает указанное количество из поля «дни», уменьшая поля «месяц» и «год» по мере необходимости, чтобы результат оставался допустимым. Результат недопустим только в том случае, если превышен максимальный/минимальный год.
Например, 31 декабря 2008 года минус один день даст 1 января 2009 года.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
days- количество дней для вычитания, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с вычтенными днями, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusHours
public OffsetDateTime minusHours(long hours)
Возвращает копию этого OffsetDateTime с вычитанием указанного числа часов.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
hours- количество часов для вычитания, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с вычтенными часами, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusMinutes
public OffsetDateTime minusMinutes(long minutes)
Возвращает копию этого OffsetDateTime с вычитанием указанного числа минут.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
minutes- количество минут для вычитания, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с вычтенными минутами, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusSeconds
public OffsetDateTime minusSeconds(long seconds)
Возвращает копию этого OffsetDateTime с вычитанием указанного числа секунд.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
seconds- количество секунд для вычитания, может быть отрицательным - Возвращает:
- OffsetDateTime, основанный на этой дате и времени с вычтенными секундами, не null
- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusNanos
public OffsetDateTime minusNanos(long nanos)
Возвращает копию этого OffsetDateTime с указанным количеством наносекунд, вычтенных из неё.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
nanos- наносекунды для вычитания, может быть отрицательным - Возвращает:
- объект
OffsetDateTimeна основе текущей даты и времени с вычтенными наносекундами, не null - Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
query
public <R> R query(TemporalQuery<R> query)
Запрашивает эту дату и время с использованием указанного запроса.
Этот запрос выполняет запрос к этой дате и времени с использованием указанного объекта стратегии запроса. Объект TemporalQuery определяет логику, используемую для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.
Результат этого метода получается путём вызова метода TemporalQuery.queryFrom(TemporalAccessor) для указанного запроса, передавая this в качестве аргумента.
- Определено в:
-
queryв интерфейсеTemporalAccessor - Параметры типа:
-
R- тип результата - Параметры:
-
query- запрос для вызова, не null - Возвращает:
- результат запроса, может быть null (определяется запросом)
- Исключения:
-
DateTimeException- если запрос выполнить невозможно (определяется запросом) -
ArithmeticException- если произошел переполнение числовых значений (определяется запросом)
adjustInto
public Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект так, чтобы он имел тот же часовой пояс, дату и время, что и этот объект.
Это возвращает временной объект того же наблюдаемого типа, что и входной, с изменённым часовым поясом, датой и временем, которые будут такими же, как у этого.
Настройка эквивалентна трём вызовам Temporal.with(TemporalField, long), передавая ChronoField.EPOCH_DAY, ChronoField.NANO_OF_DAY и ChronoField.OFFSET_SECONDS в качестве полей.
В большинстве случаев яснее использовать обратный порядок вызовов, используя Temporal.with(TemporalAdjuster):
// these two lines are equivalent, but the second approach is recommended temporal = thisOffsetDateTime.adjustInto(temporal); temporal = temporal.with(thisOffsetDateTime);
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Определено в:
-
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 - Возвращает:
- объект zoned date-time, сформированный из этой даты и времени, не null
atZoneSimilarLocal
public ZonedDateTime atZoneSimilarLocal(ZoneId zone)
Объединяет эту дату и время с часовым поясом, создавая ZonedDateTime, пытаясь сохранить ту же локальную дату и время.
Возвращает ZonedDateTime, сформированную из этой даты и времени и указанного часового пояса. По возможности, результат будет иметь ту же локальную дату и время, что и этот объект.
Правила часового пояса, такие как летнее время, означают, что не каждое время на локальной временной линии существует. Если локальная дата и время находятся в разрыве или наложении в соответствии с правилами, используется решатель для определения результирующего локального времени и смещения. Этот метод использует ZonedDateTime.ofLocal(LocalDateTime, ZoneId, ZoneOffset) для сохранения смещения из этого экземпляра, если это возможно.
Более точный контроль над разрывами и наложениями доступен двумя способами. Если вам просто нужно использовать более позднее смещение при наложениях, вызовите ZonedDateTime.withLaterOffsetAtOverlap() сразу после этого метода.
Для создания объекта zoned date-time в тот же момент времени независимо от локальной временной линии используйте atZoneSameInstant(ZoneId). Для использования смещения в качестве идентификатора часового пояса используйте toZonedDateTime().
- Параметры:
-
zone- используемый часовой пояс, не null - Возвращает:
- объект zoned date-time, сформированный из этой даты и самого раннего допустимого времени для часового пояса, не null
toOffsetTime
public OffsetTime toOffsetTime()
Преобразует эту дату и время в OffsetTime.
Возвращает время со смещением с тем же локальным временем и смещением.
- Возвращает:
- объект OffsetTime, представляющий время и смещение, не null
toZonedDateTime
public ZonedDateTime toZonedDateTime()
Преобразует эту дату и время в ZonedDateTime, используя смещение как идентификатор часового пояса.
Создаёт максимально простой ZonedDateTime с использованием смещения в качестве идентификатора часового пояса.
Для управления используемым часовым поясом см. atZoneSameInstant(ZoneId) и atZoneSimilarLocal(ZoneId).
- Возвращает:
- объект zoned date-time, представляющий ту же локальную дату и время и смещение, не 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)
Сравнивает данную дату и время с другой датой и временем.
Сравнение основано на мгновении времени, а затем на локальной дате и времени. Оно соответствует «совпадению», как определено в 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.