Интерфейс 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 |
Настраивает указанный временной объект, чтобы он имел ту же дату и время, что и этот объект. |
ChronoZonedDateTime<D> |
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<D> |
minus |
Возвращает объект того же типа, что и этот объект, с вычтенным указанным периодом. |
default ChronoLocalDateTime<D> |
minus |
Возвращает объект того же типа, что и этот объект, с вычтенным значением. |
ChronoLocalDateTime<D> |
plus |
Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом. |
default ChronoLocalDateTime<D> |
plus |
Возвращает объект того же типа, что и этот объект, с добавленным значением. |
default <R> R |
query |
Запрашивает это время с использованием указанного запроса. |
static Comparator<ChronoLocalDateTime<?>> |
timeLineOrder() |
Получает компаратор, сравнивающий ChronoLocalDateTime в порядке временной шкалы, игнорируя хронологию. |
default long |
toEpochSecond |
Преобразует это время в количество секунд от эпохи 1970-01-01T00:00:00Z. |
default Instant |
toInstant |
Преобразует это время в Instant. |
D |
toLocalDate() |
Получает локальную дату части этого времени. |
LocalTime |
toLocalTime() |
Получает локальное время части этого времени. |
String |
toString() |
Выводит это время в виде String. |
default ChronoLocalDateTime<D> |
with |
Возвращает изменённый объект того же типа, что и этот объект, с выполненной корректировкой. |
ChronoLocalDateTime<D> |
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 поля даты и времени.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.isSupportedBy(TemporalAccessor) с this в качестве аргумента. Поддерживается ли поле, определяется полем.
- Определено в:
-
isSupportedв интерфейсеTemporalAccessor - Параметры:
-
field- поле для проверки, null возвращает false - Возвращает:
- true, если поле можно запросить, false, если нет
isSupported
default boolean isSupported(TemporalUnit unit)
Проверяет, можно ли добавить или вычесть указанный интервал к этому объекту даты и времени. Если false, то вызов методов 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 января, то добавление одного месяца будет неясно. В таких случаях поле отвечает за решение результата. Обычно оно выбирает предыдущую допустимую дату, которая в этом примере будет последним допустимым днем февраля.
- 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)
Это объединяет эту локальную дату и время и указанное смещение для вычисления значения epoch-second, которое представляет собой количество прошедших секунд с 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:
- значение компаратора, отрицательное, если меньше, положительное, если больше
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, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/chrono/ChronoLocalDateTime.html