Интерфейс 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, чтобы он имел ту же дату и время, что и этот объект. |
ChronoZonedDateTime |
atZone |
Объединяет это время с часовым поясом, чтобы создать ChronoZonedDateTime. |
default int |
compareTo |
Сравнивает это время с другим временем, включая хронологию. |
boolean |
equals |
Проверяет, равно ли это время другому времени, включая хронологию. |
default String |
format |
Форматирует это время с помощью указанного форматера. |
static ChronoLocalDateTime |
from |
Получает экземпляр ChronoLocalDateTime из временного объекта. |
default Chronology |
getChronology() |
Получает хронологию этого момента времени. |
int |
hashCode() |
Хеш-код для этого момента времени. |
default boolean |
isAfter |
Проверяет, следует ли этот момент времени после указанного момента времени, игнорируя хронологию. |
default boolean |
isBefore |
Проверяет, предшествует ли этот момент времени указанному моменту времени, игнорируя хронологию. |
default boolean |
isEqual |
Проверяет, равно ли это время указанному времени, игнорируя хронологию. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
default boolean |
isSupported |
Проверяет, поддерживается ли указанный период. |
default ChronoLocalDateTime |
minus |
Возвращает объект того же типа, что и этот объект, с вычтенным указанным периодом. |
default ChronoLocalDateTime |
minus |
Возвращает объект того же типа, что и этот объект, с вычтенной величиной. |
ChronoLocalDateTime |
plus |
Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом. |
default ChronoLocalDateTime |
plus |
Возвращает объект того же типа, что и этот объект, с добавленной величиной. |
default <R> R |
query |
Запрашивает этот момент времени с помощью указанного запроса. |
static Comparator |
timeLineOrder() |
Получает компаратор, сравнивающий ChronoLocalDateTime в порядке временной линии, игнорируя хронологию. |
default long |
toEpochSecond |
Преобразует этот момент времени в количество секунд с эпохи 1970-01-01T00:00:00Z. |
default Instant |
toInstant |
Преобразует это время в Instant. |
D |
toLocalDate() |
Получает локальную дату части этого момента времени. |
LocalTime |
toLocalTime() |
Получает локальное время части этого момента времени. |
String |
toString() |
Выводит это время как String. |
default ChronoLocalDateTime |
with |
Возвращает изменённый объект того же типа, что и этот объект, с произведённой корректировкой. |
ChronoLocalDateTime |
with |
Возвращает объект того же типа, что и этот объект, с изменённым указанным полем. |
Методы, объявленные в интерфейсе java.time.temporal.TemporalAccessor
get, getLong, range
Методы
timeLineOrder
static Comparator<ChronoLocalDateTime<?>> timeLineOrder()
ChronoLocalDateTime в порядке временной линии, игнорируя хронологию. Этот компаратор отличается от сравнения в compareTo(java.time.chrono.ChronoLocalDateTime<?>) тем, что он сравнивает только базовую дату и время, а не хронологию. Это позволяет сравнивать даты в разных календарных системах на основе позиции даты и времени на локальной временной линии. Базовое сравнение эквивалентно сравнению эпохи дня и наносекунд дня.
- Возвращает:
- компаратор, сравнивающий в порядке временной линии, игнорируя хронологию
- См. также:
from
static ChronoLocalDateTime<?> from(TemporalAccessor temporal)
ChronoLocalDateTime из временного объекта. Это получает локальную дату и время, основанные на указанном временном объекте. TemporalAccessor представляет произвольный набор информации о дате и времени, которую этот фабричный метод преобразует в экземпляр ChronoLocalDateTime.
Преобразование извлекает и объединяет хронологию и дату-время из временного объекта. Поведение эквивалентно использованию Chronology.localDateTime(TemporalAccessor) с извлеченной хронологией. Реализации могут выполнять оптимизации, такие как доступ к тем полям, которые эквивалентны соответствующим объектам.
Этот метод соответствует подписи функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, ChronoLocalDateTime::from.
- Параметры:
-
temporal- временной объект для преобразования, не null - Возвращает:
- дата и время, не null
- Исключения:
-
DateTimeException- если невозможно выполнить преобразование вChronoLocalDateTime - См. также:
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. Моменты на временной шкале после эпохи положительны, раньше — отрицательны.
Эта реализация по умолчанию рассчитывается из эпохального дня даты и секунды дня времени.
- Параметры:
-
offset— используемое смещение для преобразования, не null - Возвращает:
- количество секунд с эпохи 1970-01-01T00:00:00Z
compareTo
default int compareTo(ChronoLocalDateTime<?> other)
Сравнение выполняется сначала по дате и времени на временной шкале, затем по хронологии. Оно «согласовано с equals», как определено в Comparable.
Например, порядок сравнения следующий:
2012-12-03T12:00 (ISO)2012-12-04T12:00 (ISO)2555-12-04T12:00 (ThaiBuddhist)2012-12-05T12:00 (ISO)
Если все сравниваемые объекты даты и времени используют одну и ту же хронологию, то дополнительный этап сравнения хронологии не требуется, и используется только локальное время и дата.
Эта реализация по умолчанию выполняет указанное выше сравнение.
- Определено в:
-
compareToв интерфейсеComparable<D extends ChronoLocalDate> - Параметры:
-
other- другая дата и время для сравнения, не null - Возвращает:
- значение сравнения, представляющее собой результат сравнения этого локального времени и даты с
otherлокальным временем и датой и этой хронологии сotherхронологией, соответственно, возвращая первое ненулевое значение, а в противном случае возвращая ноль - См. также:
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)
Сравнивает эту дату и время с другой, гарантируя, что дата и время, а также хронология одинаковы.
hashCode
toString
© 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