Интерфейс 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
Корректоры являются ключевым инструментом для модификации временных объектов. Они существуют, чтобы внешне реализовать процесс корректировки, что позволяет использовать различные подходы в соответствии со схемой проектирования стратегии. Примерами могут быть корректор, который устанавливает дату, избегая выходных дней, или корректор, который устанавливает дату на последнее число месяца.
Существует два равнозначных способа использования корректировщика. Первый — вызвать метод непосредственно по этому интерфейсу. Второй — использовать 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, 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/temporal/TemporalAdjuster.html