Интерфейс 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 |
Настраивает указанный временной объект, чтобы иметь ту же дату и время, что и этот объект. |
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)
Проверяет, можно ли запросить указанное поле в этом объекте дата-время. Если 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. Моменты времени после эпохи являются положительными, более ранние - отрицательными.
Эта реализация по умолчанию вычисляет из дня эпохи даты и секунды дня времени.
- Parameters:
-
offset- используемое смещение для преобразования, не null - Returns:
- количество секунд с эпохи 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)
Если все сравниваемые объекты даты и времени находятся в одной хронологии, дополнительный этап хронологии не требуется, и используется только локальное время и дата.
Эта реализация по умолчанию выполняет сравнение, определённое выше.
- Specified by:
-
compareToв интерфейсеComparable<D extends ChronoLocalDate> - Parameters:
-
other- другая дата и время для сравнения, не null - Returns:
- значение сравнения, которое представляет собой сравнение этой локальной даты и времени с
otherлокальной датой и временем, а также этой хронологии сotherхронологией в порядке, возвращая первое ненулевое значение, а в противном случае возвращая ноль - See Also:
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:
hashCode
int hashCode()
- Overrides:
-
hashCodeв классеObject - Returns:
- подходящий хеш-код
- See Also:
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