Spec-Zone .ru
спецификации, руководства, описания, API
|
@FunctionalInterface public interface TemporalAdjuster
Регуляторы являются ключевым инструментом для того, чтобы изменить временные объекты. Они существуют, чтобы воплотить процесс корректировки, разрешая разные подходы, согласно шаблону разработки стратегии. Примерами мог бы быть регулятор, который устанавливает выходные ухода от даты, или тот, который назначает дату к прошлому дню месяца.
Есть два эквивалентных способа использовать a 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)
, поскольку это является намного более четким, чтобы читать в коде. Этот class также содержит стандартный набор регуляторов, доступных как статические методы. Они включают:
Все реализации, предоставленные статическими методами в этом интерфейсе, являются неизменными.
Модификатор и Тип | Метод и Описание |
---|---|
Временный |
adjustInto(Temporal temporal)
Корректирует указанный временный объект.
|
static TemporalAdjuster |
dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek)
Возвращает день-недельного в регуляторе месяца, который возвращает новую дату в том же самом месяце с порядковым днем-недельного.
|
static TemporalAdjuster |
firstDayOfMonth()
Возвращает "первый день месяца" регулятор, который возвращает новый набор даты первому дню текущего месяца.
|
static TemporalAdjuster |
firstDayOfNextMonth()
Возвращает "первый день следующего месяца" регулятор, который возвращает новый набор даты первому дню следующего месяца.
|
static TemporalAdjuster |
firstDayOfNextYear()
Возвращает "первый день следующего года" регулятор, который возвращает новый набор даты первому дню следующего года.
|
static TemporalAdjuster |
firstDayOfYear()
Возвращает "первый день года" регулятор, который возвращает новый набор даты первому дню текущего года.
|
static TemporalAdjuster |
firstInMonth(DayOfWeek dayOfWeek)
Возвращает первое в регуляторе месяца, который возвращает новую дату в том же самом месяце с первым днем-недельного соответствия.
|
static TemporalAdjuster |
lastDayOfMonth()
Возвращается "в последний день месяца" регулятор, который возвращает новый набор даты прошлому дню текущего месяца.
|
static TemporalAdjuster |
lastDayOfYear()
Возвращается "в последний день года" регулятор, который возвращает новый набор даты прошлому дню текущего года.
|
static TemporalAdjuster |
lastInMonth(DayOfWeek dayOfWeek)
Возвращает последнее в регуляторе месяца, который возвращает новую дату в том же самом месяце с прошлым днем-недельного соответствия.
|
static TemporalAdjuster |
next(DayOfWeek dayOfWeek)
Возвраты на следующий день-недельного регулятор, который корректирует дату к первому возникновению указанного дня-недельного после скорректированной даты.
|
static TemporalAdjuster |
nextOrSame(DayOfWeek dayOfWeek)
Возвращает дневной-недельного регулятор "затем или то же самое", которое корректирует дату к первому возникновению указанного дня-недельного после даты, скорректированной, если это уже не находится в тот день, когда тот же самый объект возвращается.
|
static TemporalAdjuster |
ofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster)
Получает a
TemporalAdjuster это обертывает регулятор даты. |
static TemporalAdjuster |
previous(DayOfWeek dayOfWeek)
Возвраты в предыдущий день-недельного регулятор, который корректирует дату к первому возникновению указанного дня-недельного перед скорректированной датой.
|
static TemporalAdjuster |
previousOrSame(DayOfWeek dayOfWeek)
Возвращает дневной-недельного регулятор, "предыдущий или то же самое", которое корректирует дату к первому возникновению указанного дня-недельного перед датой, скорректированной, если это уже не находится в тот день, когда тот же самый объект возвращается.
|
Temporal adjustInto(Temporal temporal)
Это корректирует указанный временный объект, используя логику, инкапсулировавшую в реализации class. Примерами мог бы быть регулятор, который устанавливает выходные ухода от даты, или тот, который назначает дату к прошлому дню месяца.
Есть два эквивалентных способа использовать этот метод. Первое должно вызвать этот метод непосредственно. Второе должно использовать 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
- временный объект скорректировать, не нульDateTimeException
- если неспособный вносить корректировкуArithmeticException
- если числовое переполнение происходитstatic TemporalAdjuster ofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster)
TemporalAdjuster
это обертывает регулятор даты. TemporalAdjuster
основано на низком уровне Temporal
интерфейс. Этот метод позволяет корректировку от LocalDate
к LocalDate
быть обернутым, чтобы соответствовать временно-на основе интерфейс. Это обеспечивается для удобства сделать написанные пользователем регуляторы более простыми.
Вообще, написанные пользователем регуляторы должны быть статическими константами:
static TemporalAdjuster TWO_DAYS_LATER = TemporalAdjuster.ofDateAdjuster(
date -> date.plusDays(2));
dateBasedAdjuster
- основанный на дате регулятор, не нульstatic TemporalAdjuster firstDayOfMonth()
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 возвратится 01.01.2011.
Ввод 15.02.2011 возвратится 01.02.2011.
Поведение является подходящим для использования с большинством календарных систем. Это эквивалентно:
temporal.with(DAY_OF_MONTH, 1);
static TemporalAdjuster lastDayOfMonth()
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 возвратится 31.01.2011.
Ввод 15.02.2011 возвратится 28.02.2011.
Ввод 15.02.2012 возвратится 29.02.2012 (високосный год).
Ввод 15.04.2011 возвратится 30.04.2011.
Поведение является подходящим для использования с большинством календарных систем. Это эквивалентно:
long lastDay = temporal.range(DAY_OF_MONTH).getMaximum(); temporal.with(DAY_OF_MONTH, lastDay);
static TemporalAdjuster firstDayOfNextMonth()
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 возвратится 01.02.2011.
Ввод 15.02.2011 возвратится 01.03.2011.
Поведение является подходящим для использования с большинством календарных систем. Это эквивалентно:
temporal.with(DAY_OF_MONTH, 1).plus(1, MONTHS);
static TemporalAdjuster firstDayOfYear()
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 возвратится 01.01.2011.
Ввод 15.02.2011 возвратится 01.01.2011.
Поведение является подходящим для использования с большинством календарных систем. Это эквивалентно:
temporal.with(DAY_OF_YEAR, 1);
static TemporalAdjuster lastDayOfYear()
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 возвратится 31.12.2011.
Ввод 15.02.2011 возвратится 31.12.2011.
Поведение является подходящим для использования с большинством календарных систем. Это эквивалентно:
long lastDay = temporal.range(DAY_OF_YEAR).getMaximum(); temporal.with(DAY_OF_YEAR, lastDay);
static TemporalAdjuster firstDayOfNextYear()
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 возвратится 01.01.2012.
Поведение является подходящим для использования с большинством календарных систем. Это эквивалентно:
temporal.with(DAY_OF_YEAR, 1).plus(1, YEARS);
static TemporalAdjuster firstInMonth(DayOfWeek dayOfWeek)
Календарная система ISO ведет себя следующим образом:
Ввод (понедельник 15.12.2011) возвратится 05.12.2011.
Ввод (пятница 15.12.2011) возвратится 02.12.2011.
Поведение является подходящим для использования с большинством календарных систем. Это использует DAY_OF_WEEK
и DAY_OF_MONTH
поля и DAYS
модуль, и принимает семидневную неделю.
dayOfWeek
- день-недельного, не нульstatic TemporalAdjuster lastInMonth(DayOfWeek dayOfWeek)
Календарная система ISO ведет себя следующим образом:
Ввод (понедельник 15.12.2011) возвратится 26.12.2011.
Ввод (пятница 15.12.2011) возвратится 30.12.2011.
Поведение является подходящим для использования с большинством календарных систем. Это использует DAY_OF_WEEK
и DAY_OF_MONTH
поля и DAYS
модуль, и принимает семидневную неделю.
dayOfWeek
- день-недельного, не нульstatic TemporalAdjuster dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek)
Календарная система ISO ведет себя следующим образом:
Ввод 15.12.2011 для (1, во вторник) возвратится 06.12.2011.
Ввод 15.12.2011 для (2, во вторник) возвратится 13.12.2011.
Ввод 15.12.2011 для (3, во вторник) возвратится 20.12.2011.
Ввод 15.12.2011 для (4, во вторник) возвратится 27.12.2011.
Ввод 15.12.2011 для (5, во вторник) возвратится 03.01.2012.
Ввод 15.12.2011 для (-1, во вторник) возвратится 27.12.2011 (последний в месяце).
Ввод 15.12.2011 для (-4, во вторник) возвратится 06.12.2011 (за 3 недели до этого последний в месяце).
Ввод 15.12.2011 для (-5, во вторник) возвратится 29.11.2011 (за 4 недели до этого последний в месяце).
Ввод 15.12.2011 для (0, во вторник) возвратится 29.11.2011 (последний в предыдущем месяце).
Для положительного или нулевого ординала алгоритм эквивалентен обнаружению первого дня-недельного, который соответствует в течение месяца и затем добавления многих недель к этому. Для отрицательного ординала алгоритм эквивалентен обнаружению в последний день-недельного, которое соответствует в течение месяца и затем вычитания многих недель к нему. Порядковое число недель не проверяется и интерпретируется мягко согласно этому алгоритму. Это определение означает, что ординал нуля находит прошлый день-недельного соответствия в предыдущем месяце.
Поведение является подходящим для использования с большинством календарных систем. Это использует DAY_OF_WEEK
и DAY_OF_MONTH
поля и DAYS
модуль, и принимает семидневную неделю.
ordinal
- неделя в течение месяца, неограниченного, но обычно от-5 до 5dayOfWeek
- день-недельного, не нульstatic TemporalAdjuster next(DayOfWeek dayOfWeek)
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 (суббота) для параметра (ПОНЕДЕЛЬНИК) возвратится 17.01.2011 (два дня спустя).
Ввод 15.01.2011 (суббота) для параметра (СРЕДА) возвратится 19.01.2011 (четыре дня спустя).
Ввод 15.01.2011 (суббота) для параметра (СУББОТА) возвратится 22.01.2011 (семь дней спустя).
Поведение является подходящим для использования с большинством календарных систем. Это использует DAY_OF_WEEK
поле и DAYS
модуль, и принимает семидневную неделю.
dayOfWeek
- день-недельного, чтобы переместить дату в, не нульstatic TemporalAdjuster nextOrSame(DayOfWeek dayOfWeek)
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 (суббота) для параметра (ПОНЕДЕЛЬНИК) возвратится 17.01.2011 (два дня спустя).
Ввод 15.01.2011 (суббота) для параметра (СРЕДА) возвратится 19.01.2011 (четыре дня спустя).
Ввод 15.01.2011 (суббота) для параметра (СУББОТА) возвратится 15.01.2011 (то же самое как входной).
Поведение является подходящим для использования с большинством календарных систем. Это использует DAY_OF_WEEK
поле и DAYS
модуль, и принимает семидневную неделю.
dayOfWeek
- день-недельного, чтобы проверить на или переместить дату в, не нульstatic TemporalAdjuster previous(DayOfWeek dayOfWeek)
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 (суббота) для параметра (ПОНЕДЕЛЬНИК) возвратится 10.01.2011 (пятью днями ранее).
Ввод 15.01.2011 (суббота) для параметра (СРЕДА) возвратится 12.01.2011 (тремя днями ранее).
Ввод 15.01.2011 (суббота) для параметра (СУББОТА) возвратится 08.01.2011 (семью днями ранее).
Поведение является подходящим для использования с большинством календарных систем. Это использует DAY_OF_WEEK
поле и DAYS
модуль, и принимает семидневную неделю.
dayOfWeek
- день-недельного, чтобы переместить дату в, не нульstatic TemporalAdjuster previousOrSame(DayOfWeek dayOfWeek)
Календарная система ISO ведет себя следующим образом:
Ввод 15.01.2011 (суббота) для параметра (ПОНЕДЕЛЬНИК) возвратится 10.01.2011 (пятью днями ранее).
Ввод 15.01.2011 (суббота) для параметра (СРЕДА) возвратится 12.01.2011 (тремя днями ранее).
Ввод 15.01.2011 (суббота) для параметра (СУББОТА) возвратится 15.01.2011 (то же самое как входной).
Поведение является подходящим для использования с большинством календарных систем. Это использует DAY_OF_WEEK
поле и DAYS
модуль, и принимает семидневную неделю.
dayOfWeek
- день-недельного, чтобы проверить на или переместить дату в, не нуль
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92