Spec-Zone.ru › OpenJDK 24

Интерфейс 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 было прочитано и понято перед использованием этого интерфейса.

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

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

Модификатор и тип Метод Описание
default Temporal adjustInto(Temporal 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)
Проверяет, поддерживается ли указанное поле.

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

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

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

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

isSupported

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

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

Набор поддерживаемых интервалов определяется хронологией и обычно включает все ChronoUnit интервалы, кроме 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 января, то добавление одного месяца будет неясно. В таких случаях поле отвечает за разрешение результата. Как правило, оно выбирает предыдущую допустимую дату, которая в этом примере будет последним допустимым днём февраля.

Указано в:
plus в интерфейсе Temporal
Параметры:
amountToAdd — количество указанного элемента для добавления, может быть отрицательным
unit — единица измерения количества для добавления, не null
Возвращает:
объект того же типа с добавленным указанным периодом, не null
Выбрасывает:
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, не гарантирует возвращение той же даты и времени.

Указано в:
minus в интерфейсе Temporal
Параметры:
amount — величина для вычитания, не null
Возвращает:
объект того же типа с произведённой корректировкой, не null
Выбрасывает:
DateTimeException — если вычитание невозможно
ArithmeticException — если произошел переполнение числовых данных

minus

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

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

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

Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract — количество указанного элемента для вычитания, может быть отрицательным
unit — единица измерения количества для вычитания, не null
Возвращает:
объект того же типа с вычтенным указанным периодом, не null
Выбрасывает:
DateTimeException — если единицу нельзя вычесть
ArithmeticException — если произошел переполнение числовых данных

query

default <R> R query(TemporalQuery<R> query)
Запрашивает эту дату и время с помощью указанного запроса.

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

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

Указано в:
query в интерфейсе TemporalAccessor
Параметры типа:
R — тип результата
Параметры:
query — запрос для вызова, не null
Возвращает:
результат запроса, может возвращать null (определяется запросом)
Выбрасывает:
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);
 

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

Указано в:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal — целевой объект для корректировки, не null
Возвращает:
скорректированный объект, не null
Выбрасывает:
DateTimeException — если корректировка невозможна
ArithmeticException — если произошло переполнение числовых данных

format

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

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

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

  return formatter.format(this);
 
Параметры:
formatter — используемый форматтер, не null
Возвращает:
строка отформатированной даты и времени, не null
Выбрасывает:
DateTimeException — если при печати произошла ошибка

atZone

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

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

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

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

В случае разрыва, когда часы переводятся вперёд, не существует допустимого смещения. Вместо этого локальная дата и время корректируются, чтобы быть позже на длину разрыва. При типичном изменении перехода на летнее время на один час локальная дата и время будут перемещены на один час позже в смещение, обычно соответствующее «лету».

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

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

toInstant

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

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

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

Параметры:
offset — используемое смещение для преобразования, не null
Возвращает:
Instant, представляющий тот же момент, не null

toEpochSecond

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

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

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

Параметры:
offset — используемое смещение для преобразования, не null
Возвращает:
количество секунд с эпохи 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».

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

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

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

isAfter

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

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

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

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

isBefore

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

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

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

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

isEqual

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

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

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

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

equals

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

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

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

hashCode

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

toString

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

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

Переопределяет:
toString в классе Object
Возвращает:
строковое представление этой даты и времени, не null

© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/chrono/ChronoLocalDateTime.html

Spec-Zone.ru

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