Spec-Zone.ru › OpenJDK 21

Интерфейс ChronoLocalDateTime<D extends ChronoLocalDate>

Параметры типа:
D - конкретный тип для даты этого объекта даты и времени
Все суперинтерфейсы:
Comparable<ChronoLocalDateTime<?>>, Temporal, TemporalAccessor, TemporalAdjuster
Все известные реализующие классы:
LocalDateTime
public interface ChronoLocalDateTime<D extends ChronoLocalDate> extends Temporal, TemporalAdjuster, Comparable<ChronoLocalDateTime<?>>
Объект даты и времени без часового пояса в произвольном календаре, предназначенный для использования в сложных задачах глобализации.

Большинство приложений должны объявлять сигнатуры методов, поля и переменные как LocalDateTime, а не этот интерфейс.

Объект ChronoLocalDateTime — это абстрактное представление локальной даты и времени, где Chronology chronology, или календарная система, является подключаемой. Дата и время определяются в терминах полей, выраженных через TemporalField, где большинство распространённых реализаций определены в ChronoField. Календарь определяет, как работает календарная система и какое значение имеют стандартные поля.

Когда использовать этот интерфейс

Дизайн API рекомендует использовать LocalDateTime вместо этого интерфейса, даже в случае, когда приложению нужно обработать несколько календарных систем. Обоснование этого подробно рассмотрено в ChronoLocalDate.

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

Требования к реализации:
Этот интерфейс должен быть реализован с осторожностью, чтобы обеспечить корректную работу других классов. Все реализуемые классы, которые могут быть созданы, должны быть final, неизменяемыми и потокобезопасными. Подклассы должны быть сериализуемыми по возможности.
С:
1.8

Краткое описание методов

Модификатор и тип Метод Описание
default Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект, чтобы иметь ту же дату и время, что и этот объект.
ChronoZonedDateTime<D> atZone(ZoneId zone)
Комбинирует это время с часовым поясом, чтобы создать ChronoZonedDateTime.
default int compareTo(ChronoLocalDateTime<?> other)
Сравнивает это время с другим временем, включая календарь.
boolean equals(Object obj)
Проверяет, равно ли это время другому времени, включая календарь.
default String format(DateTimeFormatter formatter)
Форматирует это время с использованием указанного форматера.
static ChronoLocalDateTime<?> from(TemporalAccessor temporal)
Получает экземпляр ChronoLocalDateTime из временного объекта.
default Chronology getChronology()
Получает календарь этого объекта даты и времени.
int hashCode()
Хеш-код для этого объекта даты и времени.
default boolean isAfter(ChronoLocalDateTime<?> other)
Проверяет, предшествует ли это время указанному времени, игнорируя календарь.
default boolean isBefore(ChronoLocalDateTime<?> other)
Проверяет, следует ли это время за указанным временем, игнорируя календарь.
default boolean isEqual(ChronoLocalDateTime<?> other)
Проверяет, равны ли это время и указанное время, игнорируя календарь.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
default boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанный интервал.
default ChronoLocalDateTime<D> minus(long amountToSubtract, TemporalUnit unit)
Возвращает объект того же типа, что и этот объект, с вычтенным указанным периодом.
default ChronoLocalDateTime<D> minus(TemporalAmount amount)
Возвращает объект того же типа, что и этот объект, с вычтенным значением.
ChronoLocalDateTime<D> plus(long amountToAdd, TemporalUnit unit)
Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом.
default ChronoLocalDateTime<D> plus(TemporalAmount amount)
Возвращает объект того же типа, что и этот объект, со значением, добавленным к нему.
default <R> R query(TemporalQuery<R> query)
Запрашивает это время с использованием указанного запроса.
static Comparator<ChronoLocalDateTime<?>> timeLineOrder()
Получает компаратор, который сравнивает ChronoLocalDateTime в порядке времени, игнорируя календарь.
default long toEpochSecond(ZoneOffset offset)
Преобразует это время в количество секунд с эпохи 1970-01-01T00:00:00Z.
default Instant toInstant(ZoneOffset offset)
Преобразует это время в Instant.
D toLocalDate()
Получает локальную дату этого объекта даты и времени.
LocalTime toLocalTime()
Получает локальное время этого объекта даты и времени.
String toString()
Выводит это время в формате String.
default ChronoLocalDateTime<D> with(TemporalAdjuster adjuster)
Возвращает изменённый объект того же типа, что и этот объект, с произведённой корректировкой.
ChronoLocalDateTime<D> with(TemporalField field, long newValue)
Возвращает объект того же типа, что и этот объект, с изменённым указанным полем.

Методы, объявленные в интерфейсе java.time.temporal.Temporal

until

Методы, объявленные в интерфейсе java.time.temporal.TemporalAccessor

get, getLong, range

Подробное описание методов

timeLineOrder

static Comparator<ChronoLocalDateTime<?>> timeLineOrder()
Получает компаратор, который сравнивает ChronoLocalDateTime в порядке временной шкалы, игнорируя хронологию.

Этот компаратор отличается от сравнения в compareTo(java.time.chrono.ChronoLocalDateTime<?>) тем, что он сравнивает только базовую дату и время, а не хронологию. Это позволяет сравнивать даты в разных календарных системах на основе позиции даты и времени на локальной временной шкале. Базовое сравнение эквивалентно сравнению эпохи дня и наносекунд дня.

Возвращает:
компаратор, который сравнивает в порядке временной шкалы, игнорируя хронологию
См. также:
  • isAfter(java.time.chrono.ChronoLocalDateTime<?>)
  • isBefore(java.time.chrono.ChronoLocalDateTime<?>)
  • isEqual(java.time.chrono.ChronoLocalDateTime<?>)

from

static ChronoLocalDateTime<?> from(TemporalAccessor temporal)
Получает экземпляр ChronoLocalDateTime из временного объекта.

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

Преобразование извлекает и комбинирует хронологию и дату-время из временного объекта. Поведение эквивалентно использованию Chronology.localDateTime(TemporalAccessor) с извлеченной хронологией. Реализации разрешено выполнять оптимизации, такие как доступ к тем полям, которые эквивалентны соответствующим объектам.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса с помощью ссылки на метод, ChronoLocalDateTime::from.

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
дата и время, не null
Исключения:
DateTimeException - если невозможно выполнить преобразование в ChronoLocalDateTime
См. также:
  • Chronology.localDateTime(TemporalAccessor)

getChronology

default Chronology getChronology()
Получает хронологию этой даты и времени.

Chronology представляет календарную систему, используемую в данный момент. Эра и другие поля в ChronoField определяются хронологией.

Возвращает:
хронология, не null

toLocalDate

D toLocalDate()
Получает локальную часть даты этого объекта дата-время.

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

Возвращает:
часть даты этого объекта дата-время, не null

toLocalTime

LocalTime toLocalTime()
Получает локальную часть времени этого объекта дата-время.

Возвращает локальное время с теми же часами, минутами, секундами и наносекундами, что и в этом объекте дата-время.

Возвращает:
часть времени этого объекта дата-время, не null

isSupported

boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.

Проверяет, можно ли запросить указанное поле в этом объекте дата-время. Если false, то вызов методов range, get и with(TemporalField, long) приведет к исключению.

Набор поддерживаемых полей определяется хронологией и обычно включает все поля даты и времени.

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

Определено в:
isSupported в интерфейсе TemporalAccessor
Параметры:
field - поле для проверки, null возвращает false
Возвращает:
true, если поле можно запросить, false - если нет

isSupported

default boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.

Проверяет, можно ли добавить или вычесть указанную единицу измерения из этого объекта дата-время. Если false, то вызов методов plus(long, TemporalUnit) и minus приведет к исключению.

Набор поддерживаемых единиц измерения определяется хронологией и обычно включает все единицы измерения, кроме FOREVER.

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

Определено в:
isSupported в интерфейсе Temporal
Параметры:
unit - единица измерения для проверки, null возвращает false
Возвращает:
true, если единицу можно добавить/вычесть, false - если нет

with

default ChronoLocalDateTime<D> with(TemporalAdjuster adjuster)
Возвращает измененный объект того же типа, что и этот объект, с произведенной корректировкой.

Корректирует этот объект дата-время согласно правилам указанного корректировщика. Простой корректировщик может просто установить одно из полей, например, поле года. Более сложный корректировщик может установить дату на последнее число месяца. Выбор общих корректировок представлен в TemporalAdjusters. Они включают в себя поиск "последнего числа месяца" и "следующей среды". Корректировщик отвечает за обработку особых случаев, таких как переменная длина месяца и високосные годы.

Некоторые примеры кода, показывающие, как и почему используется этот метод:

  date = date.with(Month.JULY);        // most key classes implement TemporalAdjuster
  date = date.with(lastDayOfMonth());  // static import from Adjusters
  date = date.with(next(WEDNESDAY));   // static import from Adjusters and DayOfWeek
 
Определено в:
with в интерфейсе Temporal
Параметры:
adjuster - корректировщик для использования, не null
Возвращает:
объект того же типа с произведенной корректировкой, не null
Исключения:
DateTimeException - если корректировка не может быть произведена
ArithmeticException - если происходит переполнение числовых значений

with

ChronoLocalDateTime<D> with(TemporalField field, long newValue)
Возвращает объект того же типа, что и этот объект, с измененным указанным полем.

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

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

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

plus

default ChronoLocalDateTime<D> plus(TemporalAmount amount)
Возвращает объект того же типа, что и этот объект, с добавленным значением.

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

Некоторые примеры кода, показывающие, как и почему используется этот метод:

  date = date.plus(period);                // add a Period instance
  date = date.plus(duration);              // add a Duration instance
  date = date.plus(workingDays(6));        // example user-written workingDays method
 

Обратите внимание, что вызов plus и за ним minus не гарантирует возврат той же даты и времени.

Определено в:
plus в интерфейсе Temporal
Параметры:
amount - значение для добавления, не null
Возвращает:
объект того же типа с произведенной корректировкой, не null
Исключения:
DateTimeException - если добавление невозможно
ArithmeticException - если происходит переполнение числовых значений

plus

ChronoLocalDateTime<D> plus(long amountToAdd, TemporalUnit unit)
Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом.

Этот метод возвращает новый объект, основанный на этом объекте, с добавленным указанным периодом. Например, в случае LocalDate, это можно использовать для добавления количества лет, месяцев или дней. Возвращаемый объект будет иметь тот же тип наблюдаемых, что и этот объект.

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

Specified by:
plus в интерфейсе Temporal
Parameters:
amountToAdd - количество указанного интервала для добавления, может быть отрицательным
unit - единица измерения количества для добавления, не null
Returns:
объект того же типа с добавленным указанным периодом, не null
Throws:
DateTimeException - если единицу нельзя добавить
ArithmeticException - если происходит переполнение чисел

minus

default ChronoLocalDateTime<D> minus(TemporalAmount amount)
Возвращает объект того же типа, что и этот объект, со вычтенным значением.

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

Некоторые примеры кода, показывающие, как и почему используется этот метод:

  date = date.minus(period);               // subtract a Period instance
  date = date.minus(duration);             // subtract a Duration instance
  date = date.minus(workingDays(6));       // example user-written workingDays method
 

Обратите внимание, что вызов plus за которым следует minus не гарантирует возвращения той же даты и времени.

Specified by:
minus в интерфейсе Temporal
Parameters:
amount - значение для вычитания, не null
Returns:
объект того же типа с внесённой корректировкой, не null
Throws:
DateTimeException - если вычитание невозможно
ArithmeticException - если происходит переполнение чисел

minus

default ChronoLocalDateTime<D> minus(long amountToSubtract, TemporalUnit unit)
Возвращает объект того же типа, что и этот объект, с вычтенным указанным периодом.

Этот метод возвращает новый объект, основанный на этом объекте, с вычтенным указанным периодом. Например, в случае LocalDate, это можно использовать для вычитания количества лет, месяцев или дней. Возвращаемый объект будет иметь тот же тип наблюдаемых, что и этот объект.

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

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

query

default <R> R query(TemporalQuery<R> query)
Запрос этого объекта даты и времени с использованием указанного запроса.

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

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

Specified by:
query в интерфейсе TemporalAccessor
Type Parameters:
R - тип результата
Parameters:
query - запрос для вызова, не null
Returns:
результат запроса, может быть null (определяется запросом)
Throws:
DateTimeException - если запрос выполнить невозможно (определяется запросом)
ArithmeticException - если происходит переполнение чисел (определяется запросом)

adjustInto

default Temporal adjustInto(Temporal temporal)
Корректирует указанный временной объект, чтобы он имел ту же дату и время, что и этот объект.

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

Корректировка эквивалентна дважды использованию Temporal.with(TemporalField, long), передавая ChronoField.EPOCH_DAY и ChronoField.NANO_OF_DAY в качестве полей.

В большинстве случаев более понятным является обратный порядок вызова с использованием Temporal.with(TemporalAdjuster):

   // these two lines are equivalent, but the second approach is recommended
   temporal = thisLocalDateTime.adjustInto(temporal);
   temporal = temporal.with(thisLocalDateTime);
 

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

Specified by:
adjustInto в интерфейсе TemporalAdjuster
Parameters:
temporal - целевой объект для корректировки, не null
Returns:
скорректированный объект, не null
Throws:
DateTimeException - если корректировку выполнить невозможно
ArithmeticException - если происходит переполнение чисел

format

default String format(DateTimeFormatter formatter)
Форматирует это время даты с использованием указанного форматера.

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

Реализация по умолчанию должна работать следующим образом:

  return formatter.format(this);
 
Parameters:
formatter - используемый форматер, не null
Returns:
строка отформатированного времени даты, не null
Throws:
DateTimeException - если при печати произошла ошибка

atZone

ChronoZonedDateTime<D> atZone(ZoneId zone)
Объединяет это время с часовым поясом, чтобы создать ChronoZonedDateTime.

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

Локальное время даты и времени разрешается до одной точки на временной шкале. Это достигается путем поиска допустимого смещения от UTC/Гринвича для локального времени даты и времени, как определено rules идентификатора часового пояса.

В большинстве случаев существует только одно допустимое смещение для локального времени даты и времени. В случае перекрытия, когда время переводится назад, существует два допустимых смещения. Этот метод использует более раннее смещение, которое обычно соответствует "лету".

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

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

toInstant

default Instant toInstant(ZoneOffset offset)
Преобразует это время даты в Instant.

Это объединяет это локальное время даты и времени с указанным смещением, чтобы сформировать Instant.

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

Parameters:
offset - используемое смещение для преобразования, не null
Returns:
Instant представляющий тот же момент времени, не null

toEpochSecond

default long toEpochSecond(ZoneOffset offset)
Преобразует это время даты в количество секунд с эпохи 1970-01-01T00:00:00Z.

Это объединяет это локальное время даты и времени с указанным смещением для расчета значения эпохи-секунд, которое представляет количество прошедших секунд с 1970-01-01T00:00:00Z. Моменты времени после эпохи являются положительными, более ранние - отрицательными.

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

Parameters:
offset - используемое смещение для преобразования, не null
Returns:
количество секунд с эпохи 1970-01-01T00:00:00Z

compareTo

default int compareTo(ChronoLocalDateTime<?> other)
Сравнивает эту дату и время с другой датой и временем, включая хронологию.

Сравнение основано сначала на дате и времени на временной оси, а затем на хронологии. Оно «согласуется с equals», как определено в Comparable.

Например, порядок сравнения следующий:

  1. 2012-12-03T12:00 (ISO)
  2. 2012-12-04T12:00 (ISO)
  3. 2555-12-04T12:00 (ThaiBuddhist)
  4. 2012-12-05T12:00 (ISO)
Значения #2 и #3 представляют одну и ту же дату и время на временной оси. Когда два значения представляют одну и ту же дату и время, идентификатор хронологии используется для их различения. Этот шаг необходим для того, чтобы порядок сравнения «согласовывался с equals».

Если все сравниваемые объекты даты и времени находятся в одной хронологии, дополнительный этап хронологии не требуется, и используется только локальное время и дата.

Эта реализация по умолчанию выполняет сравнение, определённое выше.

Specified by:
compareTo в интерфейсе Comparable<D extends ChronoLocalDate>
Parameters:
other - другая дата и время для сравнения, не null
Returns:
значение сравнения, которое представляет собой сравнение этой локальной даты и времени с other локальной датой и временем, а также этой хронологии с other хронологией в порядке, возвращая первое ненулевое значение, а в противном случае возвращая ноль
See Also:
  • isBefore(java.time.chrono.ChronoLocalDateTime<?>)
  • isAfter(java.time.chrono.ChronoLocalDateTime<?>)

isAfter

default boolean isAfter(ChronoLocalDateTime<?> other)
Проверяет, находится ли эта дата и время после указанной даты и времени, игнорируя хронологию.

Этот метод отличается от сравнения в compareTo(java.time.chrono.ChronoLocalDateTime<?>) тем, что сравнивает только саму дату и время, а не хронологию. Это позволяет сравнивать даты в разных календарных системах на основе их позиции на временной оси.

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

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

isBefore

default boolean isBefore(ChronoLocalDateTime<?> other)
Проверяет, предшествует ли эта дата и время указанной дате и времени, игнорируя хронологию.

Этот метод отличается от сравнения в compareTo(java.time.chrono.ChronoLocalDateTime<?>) тем, что сравнивает только саму дату и время, а не хронологию. Это позволяет сравнивать даты в разных календарных системах на основе их позиции на временной оси.

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

Parameters:
other - другая дата и время для сравнения, не null
Returns:
true, если эта дата и время предшествует указанной дате и времени

isEqual

default boolean isEqual(ChronoLocalDateTime<?> other)
Проверяет, равна ли эта дата и время указанной дате и времени, игнорируя хронологию.

Этот метод отличается от сравнения в compareTo(java.time.chrono.ChronoLocalDateTime<?>) тем, что сравнивает только саму дату и время, а не хронологию. Это позволяет сравнивать даты и время в разных календарных системах на основе их позиции на временной оси.

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

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

equals

boolean equals(Object obj)
Проверяет, равна ли эта дата и время другой дате и времени, включая хронологию.

Сравнивает эту дату и время с другой, убеждаясь, что дата и время, а также хронология совпадают.

Overrides:
equals в классе Object
Parameters:
obj - объект для проверки, null возвращает false
Returns:
true, если эта дата равна другой дате
See Also:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Хеш-код для этой даты и времени.
Overrides:
hashCode в классе Object
Returns:
подходящий хеш-код
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

String toString()
Выводит эту дату и время как String.

Вывод будет включать полную локальную дату и время.

Overrides:
toString в классе Object
Returns:
строковое представление этой даты и времени, не null

© 1993, 2023, 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/21/docs/api/java.base/java/time/chrono/ChronoLocalDateTime.html

Spec-Zone.ru

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