Интерфейс TemporalAdjuster
- Все известные подинтерфейсы:
-
ChronoLocalDate,ChronoLocalDateTime<D>,Era
- Все известные реализующие классы:
-
DayOfWeek,HijrahDate,HijrahEra,Instant,IsoEra,JapaneseDate,JapaneseEra,LocalDate,LocalDateTime,LocalTime,MinguoDate,MinguoEra,Month,MonthDay,OffsetDateTime,OffsetTime,ThaiBuddhistDate,ThaiBuddhistEra,Year,YearMonth,ZoneOffset
- Функциональный интерфейс:
- Это функциональный интерфейс и, следовательно, может использоваться в качестве назначения для лямбда-выражения или ссылки на метод.
@FunctionalInterface public interface TemporalAdjuster
Корректоры — ключевой инструмент для изменения временных объектов. Они предназначены для внешнего процесса корректировки, позволяя использовать разные подходы, согласно паттерну проектирования «стратегия». Примеры могут включать корректор, устанавливающий дату, избегая выходных дней, или корректор, устанавливающий дату на последнее число месяца.
Существует два эквивалентных способа использования корректирующего объекта TemporalAdjuster. Первый — вызвать метод напрямую на этом интерфейсе. Второй — использовать Temporal.with(TemporalAdjuster):
// these two lines are equivalent, but the second approach is recommended temporal = thisAdjuster.adjustInto(temporal); temporal = temporal.with(thisAdjuster);Рекомендуется использовать второй подход,
with(TemporalAdjuster), так как он намного понятнее в коде. Класс TemporalAdjusters содержит стандартный набор корректоров, доступных в виде статических методов. Они включают:
- поиск первого или последнего числа месяца
- поиск первого числа следующего месяца
- поиск первого или последнего числа года
- поиск первого числа следующего года
- поиск первого или последнего дня недели в месяце, например, «первая среда июня»
- поиск следующего или предыдущего дня недели, например, «следующая четверг»
- Требования к реализации:
- Этот интерфейс не накладывает ограничений на изменяемость реализаций, однако изменяемость не рекомендуется.
- С:
- 1.8
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal |
adjustInto |
Корректирует указанный временной объект. |
Подробное описание методов
adjustInto
Temporal adjustInto(Temporal temporal)
Это корректирует указанный временной объект, используя логику, заключенную в реализующем классе. Примеры могут включать корректор, устанавливающий дату, избегая выходных дней, или корректор, устанавливающий дату на последнее число месяца.
Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод напрямую. Второй — использовать Temporal.with(TemporalAdjuster):
// these two lines are equivalent, but the second approach is recommended temporal = thisAdjuster.adjustInto(temporal); temporal = temporal.with(thisAdjuster);Рекомендуется использовать второй подход,
with(TemporalAdjuster), так как он намного понятнее в коде.- Требования к реализации:
- Реализация должна принять входной объект и скорректировать его. Реализация определяет логику корректировки и отвечает за документирование этой логики. Она может использовать любой метод на
Temporalдля запроса временного объекта и выполнения корректировки. Возвращаемый объект должен иметь тот же наблюдаемый тип, что и входной объектВходной объект не должен изменяться. Вместо этого должен возвращаться скорректированная копия оригинала. Это обеспечивает эквивалентное безопасное поведение для неизменяемых и изменяемых временных объектов.
Входной временной объект может быть в другой системе календаря, кроме ISO. Реализации могут выбрать документирование совместимости с другими системами календаря или отклонить объекты временных значений, не являющиеся ISO, с помощью
querying the chronology.Этот метод может вызываться из нескольких потоков параллельно. Он должен быть потокобезопасным при вызове.
- Параметры:
-
temporal- временной объект для корректировки, не null - Возвращает:
- объект того же наблюдаемого типа с выполненной корректировкой, не null
- Исключения:
-
DateTimeException- если корректировку выполнить невозможно -
ArithmeticException- если произошел переполнение числового значения
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/temporal/TemporalAdjuster.html