Интерфейс 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) | Настраивает указанный временной объект так, чтобы иметь ту же дату и время, что и этот объект. |
ChronoZonedDateTime<D> | atZone(ZoneId zone) | Объединяет это время с часовым поясом, чтобы создать |
default int | compareTo(ChronoLocalDateTime<?> other) | Сравнивает это время с другим временем, включая хронологию. |
boolean | equals(Object obj) | Проверяет, равно ли это время другому времени, включая хронологию. |
default String | format(DateTimeFormatter formatter) | Форматирует это время с помощью указанного форматера. |
static ChronoLocalDateTime<?> | from(TemporalAccessor temporal) | Получает экземпляр |
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() | Получает компаратор, который сравнивает |
default long | toEpochSecond(ZoneOffset offset) | Преобразует это время в количество секунд с эпохи 1970-01-01T00:00:00Z. |
default Instant | toInstant(ZoneOffset offset) | Преобразует это время в |
D | toLocalDate() | Получает локальную часть даты этого времени. |
LocalTime | toLocalTime() | Получает локальную часть времени этого времени. |
String | toString() | Выводит это время как |
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<?>) тем, что он сравнивает только базовую дату и время, а не хронологию. Это позволяет сравнивать даты в разных системах календарей на основе положения даты и времени на локальной временной шкале. Базовое сравнение эквивалентно сравнению epoch-day и nano-of-day.
- Возвращает:
- компаратор, который сравнивает в порядке временной шкалы, игнорируя хронологию
- См. также:
-
isAfter(java.time.chrono.ChronoLocalDateTime<?>),isBefore(java.time.chrono.ChronoLocalDateTime<?>),isEqual(java.time.chrono.ChronoLocalDateTime<?>)
from
static ChronoLocalDateTime<?> from(TemporalAccessor temporal)
Получает экземпляр ChronoLocalDateTime из временного объекта.
Это получает локальную дату и время на основе указанного временного объекта. TemporalAccessor представляет собой произвольный набор информации о дате и времени, который этот фабричный метод преобразует в экземпляр ChronoLocalDateTime.
Преобразование извлекает и объединяет хронологию и дату и время из временного объекта. Поведение эквивалентно использованию Chronology.localDateTime(TemporalAccessor) с извлеченной хронологией. Реализациям разрешено выполнять оптимизации, такие как доступ к тем полям, которые эквивалентны соответствующим объектам.
Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса через ссылку на метод, ChronoLocalDateTime::from.
- Параметры:
-
temporal- временной объект для преобразования, не null - Возвращает:
- дату и время, не null
- Исключения:
-
DateTimeException- если невозможно преобразовать вChronoLocalDateTime - См. также:
Chronology.localDateTime(TemporalAccessor)
getChronology
default Chronology getChronology()
Возвращает хронологию этой даты и времени.
Chronology представляет используемую систему календаря. Эра и другие поля в ChronoField определяются хронологией.
- Возвращает:
- хронологию, не null
toLocalDate
D toLocalDate()
Возвращает часть даты этой даты и времени.
Это возвращает локальную дату с тем же годом, месяцем и днем, что и эта дата и время.
- Возвращает:
- часть даты этой даты и времени, не null
toLocalTime
LocalTime toLocalTime()
Возвращает часть времени этой даты и времени.
Это возвращает локальное время с тем же часом, минутой, секундой и наносекундой, что и эта дата и время.
- Возвращает:
- часть времени этой даты и времени, не null
isSupported
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
Это проверяет, можно ли запрашивать указанное поле в этой дате и времени. Если false, то вызов методов range, get и with(TemporalField, long) вызовет исключение.
Набор поддерживаемых полей определяется хронологией и обычно включает все поля даты и времени ChronoField.
Если поле не является 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 января, то добавление одного месяца будет неясным. В таких случаях поле отвечает за разрешение результата. Обычно оно будет выбирать предыдущую допустимую дату, которая будет последним допустимым днем февраля в этом примере.
- Указано в:
-
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 - Возвращает:
- момент времени, представляющий тот же момент, не 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.
Например, порядок сравнения следующий:
2012-12-03T12:00 (ISO)2012-12-04T12:00 (ISO)2555-12-04T12:00 (ThaiBuddhist)2012-12-05T12:00 (ISO)
Если все сравниваемые объекты date-time находятся в одной хронологии, дополнительная фаза хронологии не требуется, и используется только местное время.
Эта реализация по умолчанию выполняет сравнение, определённое выше.
- Определено в:
-
compareToв интерфейсеComparable<D extends ChronoLocalDate> - Параметры:
-
other- другой момент времени для сравнения, не null - Возвращает:
- значение сравнения, отрицательное, если меньше, положительное, если больше
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.
Вывод будет включать полную локальную дату и время.
© 1993, 2020, 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/11/docs/api/java.base/java/time/chrono/ChronoLocalDateTime.html