Класс OffsetDateTime
- Все реализованные интерфейсы:
-
Serializable,Comparable<OffsetDateTime>,Temporal,TemporalAccessor,TemporalAdjuster
public final class OffsetDateTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetDateTime>, Serializable
2007-12-03T10:15:30+01:00. OffsetDateTime — это неизменяемое представление даты и времени со смещением. Этот класс хранит все поля даты и времени с точностью до наносекунд, а также смещение от UTC/Гринвича. Например, значение «2 октября 2007 года в 13:45:30.123456789 +02:00» может быть сохранено в OffsetDateTime.
OffsetDateTime, ZonedDateTime и Instant все хранят момент времени на временной шкале с точностью до наносекунд. Instant является самым простым, просто представляя момент времени. OffsetDateTime добавляет к моменту времени смещение от UTC/Гринвича, что позволяет получить локальное время. ZonedDateTime добавляет полные правила часового пояса.
Ожидается, что ZonedDateTime или Instant используются для моделирования данных в простых приложениях. Этот класс может использоваться для моделирования концепций даты и времени более подробно или при взаимодействии с базой данных или сетевым протоколом.
Это класс с неизменяемыми значениями; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, так как это может привести к непредсказуемому поведению. Например, в будущих версиях синхронизация может не сработать. Для сравнения следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final OffsetDateTime |
MAX |
Максимально поддерживаемое OffsetDateTime, '+999999999-12-31T23:59:59.999999999-18:00'. |
static final OffsetDateTime |
MIN |
Минимально поддерживаемое OffsetDateTime, '-999999999-01-01T00:00:00+18:00'. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal |
adjustInto |
Настраивает указанный временной объект так, чтобы у него был тот же смещение, дата и время, что и у этого объекта. |
ZonedDateTime |
atZoneSameInstant |
Объединяет это время с часовым поясом, чтобы создать ZonedDateTime, гарантируя, что результат имеет тот же момент времени. |
ZonedDateTime |
atZoneSimilarLocal |
Объединяет это время с часовым поясом, чтобы создать ZonedDateTime, пытаясь сохранить ту же локальную дату и время. |
int |
compareTo |
Сравнивает это время с другим временем. |
boolean |
equals |
Проверяет, равно ли это время другому времени. |
String |
format |
Форматирует это время с помощью указанного форматировщика. |
static OffsetDateTime |
from |
Получает экземпляр OffsetDateTime из временного объекта. |
int |
get |
Получает значение указанного поля из этого времени как int. |
int |
getDayOfMonth() |
Получает поле день месяца. |
DayOfWeek |
getDayOfWeek() |
Получает поле день недели, которое является перечислением DayOfWeek. |
int |
getDayOfYear() |
Получает поле день года. |
int |
getHour() |
Получает поле час суток. |
long |
getLong |
Получает значение указанного поля из этого времени как long. |
int |
getMinute() |
Получает поле минута часа. |
Month |
getMonth() |
Получает поле месяц года с использованием перечисления Month. |
int |
getMonthValue() |
Получает поле месяц года от 1 до 12. |
int |
getNano() |
Получает поле наносекунда секунды. |
ZoneOffset |
getOffset() |
Получает смещение часового пояса, например '+01:00'. |
int |
getSecond() |
Получает поле секунда минуты. |
int |
getYear() |
Получает поле год. |
int |
hashCode() |
Хэш-код для этого времени. |
boolean |
isAfter |
Проверяет, является ли момент времени этого времени после момента времени указанного времени. |
boolean |
isBefore |
Проверяет, является ли момент времени этого времени до момента времени указанного времени. |
boolean |
isEqual |
Проверяет, равен ли момент времени этого времени моменту времени указанного времени. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
boolean |
isSupported |
Проверяет, поддерживается ли указанный интервал. |
OffsetDateTime |
minus |
Возвращает копию этого времени с вычитанием указанного количества. |
OffsetDateTime |
minus |
Возвращает копию этого времени с вычитанием указанного количества. |
OffsetDateTime |
minusDays |
Возвращает копию этого OffsetDateTime с вычитанием указанного количества дней. |
OffsetDateTime |
minusHours |
Возвращает копию этого OffsetDateTime с вычитанием указанного количества часов. |
OffsetDateTime |
minusMinutes |
Возвращает копию этого OffsetDateTime с вычитанием указанного количества минут. |
OffsetDateTime |
minusMonths |
Возвращает копию этого OffsetDateTime с вычитанием указанного количества месяцев. |
OffsetDateTime |
minusNanos |
Возвращает копию этого OffsetDateTime с вычитанием указанного количества наносекунд. |
OffsetDateTime |
minusSeconds |
Возвращает копию этого OffsetDateTime с вычитанием указанного количества секунд. |
OffsetDateTime |
minusWeeks |
Возвращает копию этого OffsetDateTime с вычитанием указанного количества недель. |
OffsetDateTime |
minusYears |
Возвращает копию этого OffsetDateTime с вычитанием указанного количества лет. |
static OffsetDateTime |
now() |
Получает текущее время из системных часов в стандартном часовом поясе. |
static OffsetDateTime |
now |
Получает текущее время с указанных часов. |
static OffsetDateTime |
now |
Получает текущее время из системных часов в указанном часовом поясе. |
static OffsetDateTime |
of |
Получает экземпляр OffsetDateTime из года, месяца, дня, часа, минуты, секунды, наносекунды и смещения. |
static OffsetDateTime |
of |
Получает экземпляр OffsetDateTime из даты, времени и смещения. |
static OffsetDateTime |
of |
Получает экземпляр OffsetDateTime из даты и смещения. |
static OffsetDateTime |
ofInstant |
Получает экземпляр OffsetDateTime из Instant и идентификатора часового пояса. |
static OffsetDateTime |
parse |
Получает экземпляр OffsetDateTime из текстовой строки, такой как 2007-12-03T10:15:30+01:00. |
static OffsetDateTime |
parse |
Получает экземпляр OffsetDateTime из текстовой строки с использованием определенного форматировщика. |
OffsetDateTime |
plus |
Возвращает копию этого времени с добавлением указанного количества. |
OffsetDateTime |
plus |
Возвращает копию этого времени с добавлением указанного количества. |
OffsetDateTime |
plusDays |
Возвращает копию этого OffsetDateTime с добавлением указанного количества дней. |
OffsetDateTime |
plusHours |
Возвращает копию этого OffsetDateTime с добавлением указанного количества часов. |
OffsetDateTime |
plusMinutes |
Возвращает копию этого OffsetDateTime с добавлением указанного количества минут. |
OffsetDateTime |
plusMonths |
Возвращает копию этого OffsetDateTime с добавлением указанного количества месяцев. |
OffsetDateTime |
plusNanos |
Возвращает копию этого OffsetDateTime с добавлением указанного количества наносекунд. |
OffsetDateTime |
plusSeconds |
Возвращает копию этого OffsetDateTime с добавлением указанного количества секунд. |
OffsetDateTime |
plusWeeks |
Возвращает копию этого OffsetDateTime с добавлением указанного количества недель. |
OffsetDateTime |
plusYears |
Возвращает копию этого OffsetDateTime с добавлением указанного количества лет. |
<R> R |
query |
Обрабатывает это время с помощью указанного запроса. |
ValueRange |
range |
Получает диапазон допустимых значений для указанного поля. |
static Comparator<OffsetDateTime> |
timeLineOrder() |
Получает компаратор, который сравнивает две OffsetDateTime экземпляра, основываясь только на моменте времени. |
long |
toEpochSecond() |
Преобразует это время в количество секунд с эпохи 1970-01-01T00:00:00Z. |
Instant |
toInstant() |
Преобразует это время в Instant. |
LocalDate |
toLocalDate() |
Получает часть LocalDate этой даты и времени. |
LocalDateTime |
toLocalDateTime() |
Получает часть LocalDateTime этой даты и времени. |
LocalTime |
toLocalTime() |
Получает часть LocalTime этой даты и времени. |
OffsetTime |
toOffsetTime() |
Преобразует это время в OffsetTime. |
String |
toString() |
Выводит это время в формате String, например, 2007-12-03T10:15:30+01:00. |
ZonedDateTime |
toZonedDateTime() |
Преобразует это время в ZonedDateTime с использованием смещения в качестве идентификатора зоны. |
OffsetDateTime |
truncatedTo |
Возвращает копию этого OffsetDateTime с обнуленным временем. |
long |
until |
Вычисляет разницу до другой даты и времени в указанных единицах. |
OffsetDateTime |
with |
Возвращает скорректированную копию этого времени. |
OffsetDateTime |
with |
Возвращает копию этого времени с заданным полем, установленным на новое значение. |
OffsetDateTime |
withDayOfMonth |
Возвращает копию этого OffsetDateTime с изменённым днём месяца. |
OffsetDateTime |
withDayOfYear |
Возвращает копию этого OffsetDateTime с изменённым номером дня года. |
OffsetDateTime |
withHour |
Возвращает копию этого OffsetDateTime с изменённым часом. |
OffsetDateTime |
withMinute |
Возвращает копию этого OffsetDateTime с изменённой минутой. |
OffsetDateTime |
withMonth |
Возвращает копию этого OffsetDateTime с изменённым месяцем. |
OffsetDateTime |
withNano |
Возвращает копию этого OffsetDateTime с изменёнными наносекундами. |
OffsetDateTime |
withOffsetSameInstant |
Возвращает копию этого OffsetDateTime с заданным смещением, гарантируя, что результат находится в тот же момент времени. |
OffsetDateTime |
withOffsetSameLocal |
Возвращает копию этого OffsetDateTime с заданным смещением, гарантируя, что результат имеет ту же локальную дату и время. |
OffsetDateTime |
withSecond |
Возвращает копию этого OffsetDateTime с изменённой секундой. |
OffsetDateTime |
withYear |
Возвращает копию этого OffsetDateTime с изменённым годом. |
Подробное описание полей
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) тем, что сравнивает только базовое мгновение времени.
- Возвращает:
- компаратор, сравнивающий по порядку на временной шкале
- См. также:
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 из даты, времени и смещения. Это создаёт объект OffsetDateTime с указанной локальной датой, временем и смещением.
- Параметры:
-
date- локальная дата, не null -
time- локальное время, не null -
offset- смещение часовой зоны, не null - Возвращает:
- объект OffsetDateTime, не null
of
public static OffsetDateTime of(LocalDateTime dateTime, ZoneOffset offset)
OffsetDateTime из даты и времени, и смещения. Это создаёт объект OffsetDateTime с указанной локальной датой и временем, и смещением.
- Параметры:
-
dateTime- локальная дата и время, не null -
offset- смещение часовой зоны, не null - Возвращает:
- объект OffsetDateTime, не null
of
public static OffsetDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
OffsetDateTime из года, месяца, дня, часа, минуты, секунды, наносекунды и смещения. Это создаёт объект OffsetDateTime с указанными семью полями.
Этот метод существует в основном для написания тестовых случаев. Код, не предназначенный для тестирования, обычно использует другие методы для создания объекта 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 - Возвращает:
- объект OffsetDateTime, не null
- Исключения:
-
DateTimeException- если значение любого поля находится вне допустимого диапазона или если день месяца недопустим для данного месяца и года
ofInstant
public static OffsetDateTime ofInstant(Instant instant, ZoneId zone)
OffsetDateTime из Instant и идентификатора часовой зоны. Это создаёт объект OffsetDateTime с тем же мгновением времени, что и указанное. Нахождение смещения от UTC/Гринвича просто, так как для каждого мгновения времени существует только одно допустимое смещение.
- Параметры:
-
instant- мгновение времени для создания объекта даты и времени, не null -
zone- часовая зона, которая может быть смещением, не null - Возвращает:
- объект OffsetDateTime, не null
- Исключения:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона
from
public static OffsetDateTime from(TemporalAccessor temporal)
OffsetDateTime из временного объекта. Это получает объект OffsetDateTime, основанный на указанном временном объекте. TemporalAccessor представляет собой произвольную информацию о дате и времени, которую эта фабрика преобразует в экземпляр OffsetDateTime.
Преобразование сначала получит ZoneOffset из временного объекта. Затем оно попытается получить LocalDateTime, перейдя к Instant, если необходимо. Результатом будет комбинация ZoneOffset с LocalDateTime или Instant. Реализации разрешается выполнять оптимизации, такие как доступ к тем полям, которые эквивалентны соответствующим объектам.
Этот метод соответствует подписи функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса через ссылку на метод, OffsetDateTime::from.
- Параметры:
-
temporal- временной объект для преобразования, не null - Возвращает:
- объект OffsetDateTime, не 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 - Возвращает:
- проанализированный объект OffsetDateTime, не null
- Исключения:
-
DateTimeParseException- если текст не может быть проанализирован
parse
public static OffsetDateTime parse(CharSequence text, DateTimeFormatter formatter)
OffsetDateTime из текстовой строки, используя указанный форматер. Текст анализируется с помощью форматера, возвращая объект даты и времени.
- Параметры:
-
text- текст для анализа, не null -
formatter- используемый форматер, не null - Возвращает:
- проанализированный объект OffsetDateTime, не null
- Исключения:
-
DateTimeParseException- если текст не может быть проанализирован
isSupported
public boolean isSupported(TemporalField field)
Проверяет, можно ли получить значение указанного поля из этой даты и времени. Если false, вызов методов range, get и with(TemporalField, long) вызовет исключение.
Если поле является ChronoField, то проверка выполняется здесь. Поддерживаемые поля:
-
NANO_OF_SECOND -
NANO_OF_DAY -
MICRO_OF_SECOND -
MICRO_OF_DAY -
MILLI_OF_SECOND -
MILLI_OF_DAY -
SECOND_OF_MINUTE -
SECOND_OF_DAY -
MINUTE_OF_HOUR -
MINUTE_OF_DAY -
HOUR_OF_AMPM -
CLOCK_HOUR_OF_AMPM -
HOUR_OF_DAY -
CLOCK_HOUR_OF_DAY -
AMPM_OF_DAY -
DAY_OF_WEEK -
ALIGNED_DAY_OF_WEEK_IN_MONTH -
ALIGNED_DAY_OF_WEEK_IN_YEAR -
DAY_OF_MONTH -
DAY_OF_YEAR -
EPOCH_DAY -
ALIGNED_WEEK_OF_MONTH -
ALIGNED_WEEK_OF_YEAR -
MONTH_OF_YEAR -
PROLEPTIC_MONTH -
YEAR_OF_ERA -
YEAR -
ERA -
INSTANT_SECONDS -
OFFSET_SECONDS
ChronoField возвращается false. Если поле не является ChronoField, результат этого метода получается путем вызова TemporalField.isSupportedBy(TemporalAccessor), передавая this в качестве аргумента. Поддерживается ли поле, определяется полем.
- Specified by:
-
isSupportedв интерфейсеTemporalAccessor - Parameters:
-
field- поле для проверки, null возвращает false - Returns:
- true, если поле поддерживается в этой дате и времени, false — если нет
isSupported
public boolean isSupported(TemporalUnit unit)
Проверяет, можно ли добавить или вычесть указанную единицу измерения из этой даты и времени. Если false, вызов методов plus(long, TemporalUnit) и minus вызовет исключение.
Если единица измерения является ChronoUnit, проверка выполняется здесь. Поддерживаемые единицы измерения:
-
NANOS -
MICROS -
MILLIS -
SECONDS -
MINUTES -
HOURS -
HALF_DAYS -
DAYS -
WEEKS -
MONTHS -
YEARS -
DECADES -
CENTURIES -
MILLENNIA -
ERAS
ChronoUnit возвращается false. Если единица измерения не является ChronoUnit, результат этого метода получается путем вызова TemporalUnit.isSupportedBy(Temporal), передавая this в качестве аргумента. Поддерживается ли единица измерения, определяется единицей.
- Specified by:
-
isSupportedв интерфейсеTemporal - Parameters:
-
unit- единица измерения для проверки, null возвращает false - Returns:
- true, если единицу измерения можно добавить/вычесть, false — если нет
range
public ValueRange range(TemporalField field)
Объект диапазона выражает минимальное и максимальное допустимые значения для поля. Эта дата и время используются для повышения точности возвращаемого диапазона. Если получить диапазон невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то проверка выполняется здесь. Метод supported fields возвращает соответствующие объекты диапазона. Для всех других ChronoField выбрасывается UnsupportedTemporalTypeException.
Если поле не является ChronoField, результат этого метода получается путем вызова TemporalField.rangeRefinedBy(TemporalAccessor), передавая this в качестве аргумента. Возможность получения диапазона определяется полем.
- Specified by:
-
rangeв интерфейсеTemporalAccessor - Parameters:
-
field- поле для запроса диапазона, не null - Returns:
- диапазон допустимых значений для поля, не null
- Throws:
-
DateTimeException- если диапазон для поля получить не удалось -
UnsupportedTemporalTypeException- если поле не поддерживается
get
public int get(TemporalField field)
int. Запрашивает значение указанного поля из этой даты и времени. Возвращаемое значение всегда будет находиться в пределах допустимого диапазона значений для поля. Если получить значение невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то проверка выполняется здесь. Метод supported fields возвращает допустимые значения на основе этой даты и времени, кроме NANO_OF_DAY, MICRO_OF_DAY, EPOCH_DAY, PROLEPTIC_MONTH и INSTANT_SECONDS, которые слишком велики для int и выбрасывают UnsupportedTemporalTypeException. Все остальные ChronoField вызовут UnsupportedTemporalTypeException.
Если поле не является ChronoField, результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor), передавая this в качестве аргумента. Возможно ли получить значение и что оно представляет, определяется полем.
- Specified by:
-
getв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение поля
- Throws:
-
DateTimeException- если значение для поля получить не удалось или значение выходит за пределы допустимого диапазона значений для поля -
UnsupportedTemporalTypeException- если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException- если произошел переполнение числовых типов
getLong
public long getLong(TemporalField field)
long. Запрашивает значение указанного поля из этой даты и времени. Если получить значение невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то проверка выполняется здесь. Метод supported fields возвращает допустимые значения на основе этой даты и времени. Для всех других ChronoField выбрасывается UnsupportedTemporalTypeException.
Если поле не является ChronoField, результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor), передавая this в качестве аргумента. Возможно ли получить значение и что оно представляет, определяется полем.
- Specified by:
-
getLongв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение поля
- Throws:
-
DateTimeException- если значение для поля получить не удалось -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если произошел переполнение числовых типов
getOffset
public ZoneOffset getOffset()
Это смещение локальной даты и времени от 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
с смещениемSameInstant
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()
Этот метод возвращает месяц как int от 1 до 12. Код приложения часто яснее, если используется перечисление Month, вызвав getMonth().
- Возвращает:
- месяц года, от 1 до 12
- См. также:
getMonth
public Month getMonth()
Month. Этот метод возвращает перечисление Month для месяца. Это предотвращает путаницу, какие int значения означают. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.
- Возвращает:
- месяц года, не null
- См. также:
getDayOfMonth
public int getDayOfMonth()
Этот метод возвращает примитивное значение int для дня месяца.
- Возвращает:
- день месяца, от 1 до 31
getDayOfYear
public int getDayOfYear()
Этот метод возвращает примитивное значение int для дня года.
- Возвращает:
- день года, от 1 до 365, или 366 в високосном году
getDayOfWeek
public DayOfWeek getDayOfWeek()
DayOfWeek. Этот метод возвращает перечисление DayOfWeek для дня недели. Это предотвращает путаницу, какие int значения означают. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.
Дополнительная информация может быть получена из DayOfWeek. Это включает текстовые имена значений.
- Возвращает:
- день недели, не null
toLocalTime
public LocalTime toLocalTime()
LocalTime часть этой даты и времени. Это возвращает LocalTime с теми же часами, минутами, секундами и наносекундами, что и это дата и время.
- Возвращает:
- часть времени этой даты и времени, не null
getHour
public int getHour()
- Возвращает:
- час дня, от 0 до 23
getMinute
public int getMinute()
- Возвращает:
- минута часа, от 0 до 59
getSecond
public int getSecond()
- Возвращает:
- секунда минуты, от 0 до 59
getNano
public int getNano()
- Возвращает:
- наносекунда секунды, от 0 до 999 999 999
with
public OffsetDateTime with(TemporalAdjuster adjuster)
Это возвращает OffsetDateTime, основанную на этой, со скорректированной датой и временем. Коррекция происходит с помощью указанной стратегии корректировки. Прочитайте документацию корректировщика, чтобы понять, какая коррекция будет произведена.
Простой корректировщик может просто установить одно из полей, например, поле год. Более сложный корректировщик может установить дату на последнее число месяца. Выбор общих корректировок предоставлен в TemporalAdjusters. Они включают нахождение "последнего дня месяца" и "следующей среды". Ключевые классы даты и времени также реализуют интерфейс TemporalAdjuster, такие как Month и MonthDay. Корректировщик отвечает за обработку особых случаев, таких как различные длины месяцев и високосных годов.
Например, этот код возвращает дату последнего дня июля:
import static java.time.Month.*; import static java.time.temporal.TemporalAdjusters.*; result = offsetDateTime.with(JULY).with(lastDayOfMonth());
Классы LocalDate, LocalTime и ZoneOffset реализуют TemporalAdjuster, поэтому этот метод можно использовать для изменения даты, времени или смещения:
result = offsetDateTime.with(date); result = offsetDateTime.with(time); result = offsetDateTime.with(offset);
Результат этого метода получается путем вызова метода TemporalAdjuster.adjustInto(Temporal) на указанном корректировщике, передав this в качестве аргумента.
Этот экземпляр неизменяемый и не затронут этим вызовом метода.
- Определено в:
-
withв интерфейсеTemporal - Параметры:
-
adjuster- корректировщик для использования, не null - Возвращает:
- объект
OffsetDateTimeна основеthisс произведенной коррекцией, не null - Исключения:
-
DateTimeException- если коррекция не может быть произведена -
ArithmeticException- если происходит переполнение числовых данных
with
public OffsetDateTime with(TemporalField field, long newValue)
Это возвращает копию, основанную на текущей, с изменённым значением для указанного поля. Это можно использовать для изменения любого поддерживаемого поля, такого как год, месяц или день месяца. Если установить значение невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
В некоторых случаях изменение указанного поля может привести к тому, что результирующая дата-время станет недействительной, например, изменение месяца с 31 января на февраль сделает день месяца недействительным. В таких случаях поле отвечает за разрешение даты. Как правило, оно выберет предыдущую допустимую дату, которая в данном примере будет последним допустимым днём февраля.
Если поле является ChronoField, то корректировка выполняется здесь.
Поле INSTANT_SECONDS вернёт дату-время с указанным моментом. Смещение и наносекунды не изменятся. Если новое значение момента находится вне допустимого диапазона, будет выброшено исключение DateTimeException.
Поле OFFSET_SECONDS вернёт дату-время с указанным смещением. Местное время-дата не изменяется. Если новое значение смещения находится вне допустимого диапазона, будет выброшено исключение DateTimeException.
Другие supported fields будут вести себя в соответствии с соответствующим методом в LocalDateTime. В этом случае смещение не участвует в расчётах и останется неизменным.
Все остальные экземпляры ChronoField выбросят исключение UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.adjustInto(Temporal, long) передавая this в качестве аргумента. В этом случае поле определяет, нужно ли и как корректировать момент.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Specified by:
-
withв интерфейсеTemporal - Parameters:
-
field- поле для установки в результате, не null -
newValue- новое значение поля в результате - Returns:
- копию
OffsetDateTimeна основеthisс указанным полем, не null - Throws:
-
DateTimeException- если поле нельзя установить -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числового значения
withYear
public OffsetDateTime withYear(int year)
OffsetDateTime с изменённым годом. Время и смещение не влияют на вычисления и будут такими же в результате. Если день месяца недействителен для года, он будет изменён на последний допустимый день месяца.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
year- год для установки в результате, от MIN_YEAR до MAX_YEAR - Returns:
- копию
OffsetDateTimeна основе этой даты-времени с запрошенным годом, не null - Throws:
-
DateTimeException- если значение года недействительно
withMonth
public OffsetDateTime withMonth(int month)
OffsetDateTime с изменённым месяцем года. Время и смещение не влияют на вычисления и будут такими же в результате. Если день месяца недействителен для года, он будет изменён на последний допустимый день месяца.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
month- месяц года для установки в результате, от 1 (январь) до 12 (декабрь) - Returns:
- копию
OffsetDateTimeна основе этой даты-времени с запрошенным месяцем, не null - Throws:
-
DateTimeException- если значение месяца года недействительно
withDayOfMonth
public OffsetDateTime withDayOfMonth(int dayOfMonth)
OffsetDateTime с изменённым днём месяца. Если результирующая OffsetDateTime недействительна, выбрасывается исключение. Время и смещение не влияют на вычисления и будут такими же в результате.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
dayOfMonth- день месяца для установки в результате, от 1 до 28-31 - Returns:
- копию
OffsetDateTimeна основе этой даты-времени с запрошенным днём, не null - Throws:
-
DateTimeException- если значение дня месяца недействительно или если день месяца недействителен для месяца-года
withDayOfYear
public OffsetDateTime withDayOfYear(int dayOfYear)
OffsetDateTime с изменённым днём года. Время и смещение не влияют на вычисления и будут такими же в результате. Если результирующая OffsetDateTime недействительна, выбрасывается исключение.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
dayOfYear- день года для установки в результате, от 1 до 365-366 - Returns:
- копию
OffsetDateTimeна основе этой даты с запрошенным днём, не null - Throws:
-
DateTimeException- если значение дня года недействительно или если день года недействителен для года
withHour
public OffsetDateTime withHour(int hour)
OffsetDateTime с изменённым часом дня. Дата и смещение не влияют на вычисления и будут такими же в результате.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
hour- час дня для установки в результате, от 0 до 23 - Returns:
- копию
OffsetDateTimeна основе этой даты-времени с запрошенным часом, не null - Throws:
-
DateTimeException- если значение часа недействительно
withMinute
public OffsetDateTime withMinute(int minute)
OffsetDateTime с изменённой минутой часа. Дата и смещение не влияют на вычисления и будут такими же в результате.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
minute- минута часа для установки в результате, от 0 до 59 - Returns:
- копию
OffsetDateTimeна основе этой даты-времени с запрошенной минутой, не null - Throws:
-
DateTimeException- если значение минуты недействительно
withSecond
public OffsetDateTime withSecond(int second)
OffsetDateTime с изменённой секундой минуты. Дата и смещение не влияют на вычисления и будут такими же в результате.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
second- секунда минуты для установки в результате, от 0 до 59 - Returns:
- копию
OffsetDateTimeна основе этой даты-времени с запрошенной секундой, не null - Throws:
-
DateTimeException- если значение секунды недействительно
withNano
public OffsetDateTime withNano(int nanoOfSecond)
OffsetDateTime с изменёнными наносекундами. Дата и смещение не влияют на вычисления и будут такими же в результате.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
nanoOfSecond- наносекунды для установки в результате, от 0 до 999 999 999 - Returns:
- копию
OffsetDateTimeна основе этой даты-времени с запрошенными наносекундами, не null - Throws:
-
DateTimeException- если значение наносекунд недействительно
truncatedTo
public OffsetDateTime truncatedTo(TemporalUnit unit)
OffsetDateTime с обрезанным временем. Обрезка возвращает копию исходной даты-времени, где поля, меньшие указанного единицы измерения, устанавливаются в ноль. Например, обрезка с единицей измерения minutes установит секунды и наносекунды в ноль.
Единица измерения должна иметь длительность, которая делится на длину стандартного дня без остатка. Это включает все предоставленные единицы измерения времени в ChronoUnit и DAYS. Другие единицы измерения вызывают исключение.
Смещение не влияет на вычисления и остаётся неизменным в результате.
Этот экземпляр неизменяем и не подвергается влиянию этого вызова метода.
- Parameters:
-
unit- единица измерения для обрезки, не null - Returns:
- копию
OffsetDateTimeна основе этой даты-времени с обрезанным временем, не null - Throws:
-
DateTimeException- если обрезка невозможна -
UnsupportedTemporalTypeException- если единица измерения не поддерживается
plus
public OffsetDateTime plus(TemporalAmount amountToAdd)
Это возвращает OffsetDateTime, основанную на этой, с добавлением указанного количества. Количество обычно является Period или Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту количества вызовом TemporalAmount.addTo(Temporal). Реализация количества свободна реализовывать сложение любым способом, но обычно она вызывает plus(long, TemporalUnit). Обратитесь к документации реализации количества, чтобы определить, можно ли его успешно добавить.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Specified by:
-
plusв интерфейсеTemporal - Parameters:
-
amountToAdd- количество для добавления, не null - Returns:
- дата-время, основанная на этой дате-времени с произведенным добавлением, не null
- Throws:
-
DateTimeException- если добавление невозможно -
ArithmeticException- если происходит переполнение числового значения
plus
public OffsetDateTime plus(long amountToAdd, TemporalUnit unit)
Это возвращает OffsetDateTime, основанную на этой, с добавлением указанного количества в терминах единицы. Если добавление невозможно, потому что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoUnit, то добавление выполняется с помощью LocalDateTime.plus(long, TemporalUnit). Смещение не входит в вычисление и останется неизменным в результате.
Если поле не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.addTo(Temporal, long), передавая this в качестве аргумента. В этом случае единица определяет, можно ли и как выполнить добавление.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Specified by:
-
plusв интерфейсеTemporal - Parameters:
-
amountToAdd- количество единицы для добавления к результату, может быть отрицательным -
unit- единица количества для добавления, не null - Returns:
- дата-время, основанная на этой дате-времени с добавлением указанного количества, не null
- Throws:
-
DateTimeException- если добавление невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение числового значения
plusYears
public OffsetDateTime plusYears(long years)
OffsetDateTime с добавлением указанного количества лет. Этот метод добавляет указанное количество к полю лет в три шага:
- Добавить введенные годы к полю год
- Проверить, является ли полученная дата недействительной
- В случае необходимости скорректировать день месяца до последнего допустимого дня
Например, 2008-02-29 (високосный год) плюс один год приведет к недействительной дате 2009-02-29 (обычный год). Вместо возвращения недействительного результата выбирается последний допустимый день месяца, 2009-02-28.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Parameters:
-
years- годы для добавления, могут быть отрицательными - Returns:
- дата-время, основанная на этой дате-времени с добавлением лет, не null
- Throws:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
plusMonths
public OffsetDateTime plusMonths(long months)
OffsetDateTime с добавлением указанного количества месяцев. Этот метод добавляет указанное количество к полю месяцев в три шага:
- Добавить введенные месяцы к полю месяц
- Проверить, является ли полученная дата недействительной
- В случае необходимости скорректировать день месяца до последнего допустимого дня
Например, 2007-03-31 плюс один месяц приведет к недействительной дате 2007-04-31. Вместо возвращения недействительного результата выбирается последний допустимый день месяца, 2007-04-30.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Parameters:
-
months- месяцы для добавления, могут быть отрицательными - Returns:
- дата-время, основанная на этой дате-времени с добавлением месяцев, не null
- Throws:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
plusWeeks
public OffsetDateTime plusWeeks(long weeks)
Этот метод добавляет указанное количество недель к полю дней, увеличивая поля месяц и год по мере необходимости, чтобы результат оставался допустимым. Результат считается недопустимым только в том случае, если максимальный/минимальный год превышен.
Например, 2008-12-31 плюс одна неделя приведет к 2009-01-07.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Parameters:
-
weeks- недели для добавления, могут быть отрицательными - Returns:
- OffsetDateTime, основанный на этой дате-времени с добавлением недель, не null
- Throws:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
plusDays
public OffsetDateTime plusDays(long days)
Этот метод добавляет указанное количество к полю дней, увеличивая поля месяц и год по мере необходимости, чтобы результат оставался допустимым. Результат считается недопустимым только в том случае, если максимальный/минимальный год превышен.
Например, 2008-12-31 плюс один день приведет к 2009-01-01.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Parameters:
-
days- дни для добавления, могут быть отрицательными - Returns:
- OffsetDateTime, основанный на этой дате-времени с добавлением дней, не null
- Throws:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
plusHours
public OffsetDateTime plusHours(long hours)
OffsetDateTime с добавлением указанного количества часов. Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Parameters:
-
hours- часы для добавления, могут быть отрицательными - Returns:
- OffsetDateTime, основанный на этой дате-времени с добавлением часов, не null
- Throws:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
plusMinutes
public OffsetDateTime plusMinutes(long minutes)
OffsetDateTime с добавлением указанного количества минут. Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Parameters:
-
minutes- минуты для добавления, могут быть отрицательными - Returns:
- OffsetDateTime, основанный на этой дате-времени с добавлением минут, не null
- Throws:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
plusSeconds
public OffsetDateTime plusSeconds(long seconds)
OffsetDateTime с добавлением указанного количества секунд. Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Parameters:
-
seconds- секунды для добавления, могут быть отрицательными - Returns:
- OffsetDateTime, основанный на этой дате-времени с добавлением секунд, не null
- Throws:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
plusNanos
public OffsetDateTime plusNanos(long nanos)
OffsetDateTime с добавлением указанного количества наносекунд. Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Parameters:
-
nanos- наносекунды для добавления, могут быть отрицательными - Returns:
- OffsetDateTime, основанный на этой дате-времени с добавлением наносекунд, не null
- Throws:
-
DateTimeException- если единицу нельзя добавить к этому типу
minus
public OffsetDateTime minus(TemporalAmount amountToSubtract)
Это возвращает OffsetDateTime, основанную на этой, с вычитанием указанного количества. Количество обычно является Period или Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту количества вызовом TemporalAmount.subtractFrom(Temporal). Реализация количества свободна реализовывать вычитание любым способом, но обычно она вызывает minus(long, TemporalUnit). Обратитесь к документации реализации количества, чтобы определить, можно ли его успешно вычесть.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Specified by:
-
minusв интерфейсеTemporal - Parameters:
-
amountToSubtract- количество для вычитания, не null - Returns:
- дата-время, основанная на этой дате-времени с произведенным вычитанием, не null
- Throws:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если происходит переполнение числового значения
minus
public OffsetDateTime minus(long amountToSubtract, TemporalUnit unit)
Это возвращает OffsetDateTime, основанный на этом, со значением в терминах вычтенной единицы. Если вычесть значение невозможно, потому что единица не поддерживается или по какой-либо другой причине, возникает исключение.
Этот метод эквивалентен plus(long, TemporalUnit) с отрицательным значением. См. этот метод для полного описания того, как работает сложение, а значит и вычитание.
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Указано в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- количество единиц для вычитания из результата, может быть отрицательным -
unit- единица вычитаемого значения, не null - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенным указанным значением, не null - Исключения:
-
DateTimeException- если вычитание невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение числового типа
minusYears
public OffsetDateTime minusYears(long years)
OffsetDateTime с вычтенным указанным количеством лет. Этот метод вычитает указанное количество из поля лет в три шага:
- Вычесть введенные года из поля года
- Проверить, будет ли результирующая дата недействительной
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, 2008-02-29 (високосный год) минус один год приведет к недействительной дате 2007-02-29 (обычный год). Вместо возврата недействительного результата, вместо этого выбирается последний допустимый день месяца, 2007-02-28.
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
years- количество лет для вычитания, может быть отрицательным - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными годами, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
minusMonths
public OffsetDateTime minusMonths(long months)
OffsetDateTime с вычтенным указанным количеством месяцев. Этот метод вычитает указанное количество из поля месяцев в три шага:
- Вычесть введенные месяцы из поля месяца года
- Проверить, будет ли результирующая дата недействительной
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, 2007-03-31 минус один месяц приведет к недействительной дате 2007-02-31. Вместо возврата недействительного результата, вместо этого выбирается последний допустимый день месяца, 2007-02-28.
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
months- количество месяцев для вычитания, может быть отрицательным - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными месяцами, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
minusWeeks
public OffsetDateTime minusWeeks(long weeks)
OffsetDateTime с вычтенным указанным количеством недель. Этот метод вычитает указанное количество недель из поля дней, уменьшая поля месяца и года по мере необходимости, чтобы гарантировать, что результат останется действительным. Результат является недействительным только в том случае, если максимальный/минимальный год превышен.
Например, 2009-01-07 минус одна неделя приведет к 2008-12-31.
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
weeks- количество недель для вычитания, может быть отрицательным - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными неделями, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
minusDays
public OffsetDateTime minusDays(long days)
OffsetDateTime с вычтенным указанным количеством дней. Этот метод вычитает указанное количество из поля дней, уменьшая поля месяца и года по мере необходимости, чтобы гарантировать, что результат останется действительным. Результат является недействительным только в том случае, если максимальный/минимальный год превышен.
Например, 2009-01-01 минус один день приведет к 2008-12-31.
Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
days- количество дней для вычитания, может быть отрицательным - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными днями, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
minusHours
public OffsetDateTime minusHours(long hours)
OffsetDateTime с вычтенным указанным количеством часов. Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
hours- количество часов для вычитания, может быть отрицательным - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными часами, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
minusMinutes
public OffsetDateTime minusMinutes(long minutes)
OffsetDateTime с вычтенным указанным количеством минут. Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
minutes- количество минут для вычитания, может быть отрицательным - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными минутами, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
minusSeconds
public OffsetDateTime minusSeconds(long seconds)
OffsetDateTime с вычтенным указанным количеством секунд. Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
seconds- количество секунд для вычитания, может быть отрицательным - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными секундами, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
minusNanos
public OffsetDateTime minusNanos(long nanos)
OffsetDateTime с вычтенным указанным количеством наносекунд. Этот экземпляр является неизменяемым и не затрагивается этим вызовом метода.
- Параметры:
-
nanos- количество наносекунд для вычитания, может быть отрицательным - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными наносекундами, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
query
public <R> R query(TemporalQuery<R> query)
Это запрашивает этот объект date-time с использованием указанного объекта стратегии запроса. Объект 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 в качестве первого аргумента и преобразованный входной временной объект в качестве второго аргумента.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Specified by:
-
untilв интерфейсеTemporal - Parameters:
-
endExclusive- конечная дата, исключая её, которая преобразуется вOffsetDateTime, не null -
unit- единица измерения, не null - Returns:
- количество времени между этой датой и временем и конечной датой и временем
- Throws:
-
DateTimeException- если количество не может быть вычислено или конечный временной объект не может быть преобразован вOffsetDateTime -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение числовых данных
format
public String format(DateTimeFormatter formatter)
Эта дата и время будут переданы форматеру для получения строки.
- Parameters:
-
formatter- используемый форматер, не null - Returns:
- строка отформатированной даты и времени, не null
- Throws:
-
DateTimeException- если произошла ошибка при печати
atZoneSameInstant
public ZonedDateTime atZoneSameInstant(ZoneId zone)
ZonedDateTime, гарантируя, что результат имеет тот же момент. Возвращает ZonedDateTime, сформированный из этой даты и времени и указанного часового пояса. Это преобразование проигнорирует видимую локальную дату и время и вместо этого использует основной момент. Это предотвращает проблемы с локальными временными зонами или перекрытиями. Результат может иметь другие значения для таких полей, как час, минута и даже день.
Чтобы попытаться сохранить значения полей, используйте atZoneSimilarLocal(ZoneId). Чтобы использовать смещение как идентификатор часового пояса, используйте toZonedDateTime().
- Parameters:
-
zone- используемый часовой пояс, не null - Returns:
- зональная дата и время, сформированные из этой даты и времени, не null
atZoneSimilarLocal
public ZonedDateTime atZoneSimilarLocal(ZoneId zone)
ZonedDateTime, пытаясь сохранить ту же локальную дату и время. Возвращает ZonedDateTime, сформированный из этой даты и времени и указанного часового пояса. По возможности результат будет иметь ту же локальную дату и время, что и этот объект.
Правила часового пояса, такие как летнее время, означают, что не каждое время на локальной временной шкале существует. Если локальная дата и время находятся в пропуске или перекрытии в соответствии с правилами, то для определения результирующего локального времени и смещения используется решатель. Этот метод использует ZonedDateTime.ofLocal(LocalDateTime, ZoneId, ZoneOffset) для сохранения смещения из этого экземпляра, если это возможно.
Более тонкий контроль над пропуском и перекрытием доступен двумя способами. Если вы просто хотите использовать последнее смещение при перекрытии, вызовите ZonedDateTime.withLaterOffsetAtOverlap() сразу после этого метода.
Чтобы создать зонированную дату и время в то же мгновение независимо от локальной временной шкалы, используйте atZoneSameInstant(ZoneId). Чтобы использовать смещение как идентификатор часового пояса, используйте toZonedDateTime().
- Parameters:
-
zone- используемый часовой пояс, не null - Returns:
- зональная дата и время, сформированная из этой даты и самого раннего допустимого времени для зоны, не null
toOffsetTime
public OffsetTime toOffsetTime()
OffsetTime. Возвращает смещенное время с тем же локальным временем и смещением.
- Returns:
- OffsetTime, представляющий время и смещение, не null
toZonedDateTime
public ZonedDateTime toZonedDateTime()
ZonedDateTime, используя смещение в качестве идентификатора часового пояса. Создает максимально простую ZonedDateTime, используя смещение в качестве идентификатора часового пояса.
Для управления используемым часовым поясом см. atZoneSameInstant(ZoneId) и atZoneSimilarLocal(ZoneId).
- Returns:
- зональная дата и время, представляющие ту же локальную дату и время и смещение, не null
toInstant
public Instant toInstant()
Instant. Возвращает Instant, представляющий ту же точку на временной шкале, что и эта дата и время.
- Returns:
Instantпредставляющий тот же момент, не null
toEpochSecond
public long toEpochSecond()
Это позволяет преобразовать эту дату и время в значение поля epoch-seconds. Это предназначено в основном для низкоуровневых преобразований, а не для общего использования в приложениях.
- Returns:
- количество секунд с эпохи 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(). - Specified by:
-
compareToв интерфейсеComparable<OffsetDateTime> - Parameters:
-
other- другая дата и время для сравнения, не null - Returns:
- значение сравнения, отрицательное, если меньше, положительное, если больше
isAfter
public boolean isAfter(OffsetDateTime other)
Этот метод отличается от сравнения в compareTo(java.time.OffsetDateTime) и equals(java.lang.Object) тем, что он сравнивает только момент даты и времени. Это эквивалентно использованию dateTime1.toInstant().isAfter(dateTime2.toInstant());.
- Parameters:
-
other- другая дата и время для сравнения, не null - Returns:
- true, если текущее время после момента указанной даты и времени
isBefore
public boolean isBefore(OffsetDateTime other)
Этот метод отличается от сравнения в compareTo(java.time.OffsetDateTime) тем, что он сравнивает только момент даты и времени. Это эквивалентно использованию dateTime1.toInstant().isBefore(dateTime2.toInstant());.
- Parameters:
-
other- другая дата и время для сравнения, не null - Returns:
- true, если текущее время до момента указанной даты и времени
isEqual
public boolean isEqual(OffsetDateTime other)
Этот метод отличается от сравнения в compareTo(java.time.OffsetDateTime) и equals(java.lang.Object) тем, что сравнивает только момент времени объекта даты и времени. Это эквивалентно использованию dateTime1.toInstant().equals(dateTime2.toInstant());.
- Parameters:
-
other- другой объект даты и времени для сравнения, не null - Returns:
- true, если момент времени равен моменту времени указанного объекта даты и времени
equals
public boolean equals(Object obj)
Сравнение основано на локальной дате и времени и смещении. Для сравнения одинакового момента на временной шкале используйте isEqual(java.time.OffsetDateTime). Сравниваются только объекты типа OffsetDateTime, другие типы возвращают false.
- Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект для проверки, null возвращает false - Returns:
- true, если этот объект равен другому объекту даты и времени
- See Also:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Returns:
- подходящий хеш-код
- See Also:
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
- Overrides:
-
toStringв классеObject - Returns:
- строковое представление этого объекта даты и времени, не null
© 1993, 2021, 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/17/docs/api/java.base/java/time/OffsetDateTime.html