Интерфейс 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(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<?>) тем, что он сравнивает только базовое время и дату, а не хронологию. Это позволяет сравнивать даты в разных системах календарей на основе положения даты и времени на локальной временной шкале. Базовое сравнение эквивалентно сравнению дня эпохи и наносекунд дня.
- Возвращает:
- компаратор, который сравнивает во временной последовательности, игнорируя хронологию
- См. также:
-
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 - Возвращает:
Instant, представляющий тот же момент, не null
toEpochSecond
default long toEpochSecond(ZoneOffset offset)
Преобразует эту дату и время в количество секунд от эпохи 1970-01-01T00:00:00Z.
Это объединяет эту локальную дату и время и указанное смещение для вычисления значения epoch-секунд, которое представляет собой количество прошедших секунд с момента 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<ChronoLocalDateTime<?>> - Параметры:
-
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.