Spec-Zone.ru › OpenJDK 8

Класс TemporalAdjusters

  • java.lang.Object
    • java.time.temporal.TemporalAdjusters

public final class TemporalAdjusters
extends Object

Общие и полезные TemporalAdjusters.

Настройщики — ключевой инструмент для изменения временных объектов. Они существуют для того, чтобы внешне представить процесс корректировки, позволяя использовать разные подходы, как в шаблоне проектирования стратегия. Примерами могут служить настройщик, устанавливающий дату, исключая выходные дни, или настройщик, устанавливающий дату на последнее число месяца.

Существует два эквивалентных способа использования 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), так как он намного понятнее в коде.

Этот класс содержит стандартный набор настройщиков, доступных в виде статических методов. К ним относятся:

  • поиск первого или последнего числа месяца
  • поиск первого числа следующего месяца
  • поиск первого или последнего числа года
  • поиск первого числа следующего года
  • поиск первого или последнего дня недели в месяце, например, "первая среда в июне"
  • поиск следующего или предыдущего дня недели, например, "следующая четверг"
Требования к реализации:
Все реализации, предоставляемые статическими методами, являются неизменяемыми.
С:
1.8
См. также:
TemporalAdjuster

Методы

Модификатор и тип Метод и описание
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)

Получает TemporalAdjuster, который оборачивает корректировщик даты.

static TemporalAdjuster previous(DayOfWeek dayOfWeek)

Возвращает корректировщик предыдущего дня недели, который корректирует дату на первое вхождение указанного дня недели до корректируемой даты.

static TemporalAdjuster previousOrSame(DayOfWeek dayOfWeek)

Возвращает настройщик предыдущего или того же дня недели, который корректирует дату на первое вхождение указанного дня недели до корректируемой даты, если она уже не находится в этот день, в этом случае возвращается тот же объект.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы

ofDateAdjuster

public static TemporalAdjuster ofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster)

Получает TemporalAdjuster , который оборачивает корректор даты.

TemporalAdjuster основан на низкоуровневом интерфейсе Temporal. Этот метод позволяет обернуть корректировку с LocalDate до LocalDate для соответствия интерфейсу на основе временных значений. Это предоставляется для удобства, чтобы упростить корректировки, написанные пользователем.

В общем случае корректировки, написанные пользователем, должны быть статическими константами:

static TemporalAdjuster TWO_DAYS_LATER =
       TemporalAdjusters.ofDateAdjuster(date -> date.plusDays(2));
Параметры:
dateBasedAdjuster - корректор на основе даты, не null
Возвращает:
временной корректор, обернутый вокруг корректировщика даты, не null

firstDayOfMonth

public static TemporalAdjuster firstDayOfMonth()

Возвращает корректор «первого дня месяца», который возвращает новую дату, установленную на первый день текущего месяца.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 вернет 2011-01-01.
Ввод 2011-02-15 вернет 2011-02-01.

Это поведение подходит для большинства систем календарей. Оно эквивалентно:

temporal.with(DAY_OF_MONTH, 1);
Возвращает:
корректор первого дня месяца, не null

lastDayOfMonth

public static TemporalAdjuster lastDayOfMonth()

Возвращает корректор «последнего дня месяца», который возвращает новую дату, установленную на последний день текущего месяца.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 вернет 2011-01-31.
Ввод 2011-02-15 вернет 2011-02-28.
Ввод 2012-02-15 вернет 2012-02-29 (високосный год).
Ввод 2011-04-15 вернет 2011-04-30.

Это поведение подходит для большинства систем календарей. Оно эквивалентно:

long lastDay = temporal.range(DAY_OF_MONTH).getMaximum();
  temporal.with(DAY_OF_MONTH, lastDay);
Возвращает:
корректор последнего дня месяца, не null

firstDayOfNextMonth

public static TemporalAdjuster firstDayOfNextMonth()

Возвращает корректор «первого дня следующего месяца», который возвращает новую дату, установленную на первый день следующего месяца.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 вернет 2011-02-01.
Ввод 2011-02-15 вернет 2011-03-01.

Это поведение подходит для большинства систем календарей. Оно эквивалентно:

temporal.with(DAY_OF_MONTH, 1).plus(1, MONTHS);
Возвращает:
корректор первого дня следующего месяца, не null

firstDayOfYear

public static TemporalAdjuster firstDayOfYear()

Возвращает корректор «первого дня года», который возвращает новую дату, установленную на первый день текущего года.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 вернет 2011-01-01.
Ввод 2011-02-15 вернет 2011-01-01.

Это поведение подходит для большинства систем календарей. Оно эквивалентно:

temporal.with(DAY_OF_YEAR, 1);
Возвращает:
корректор первого дня года, не null

lastDayOfYear

public static TemporalAdjuster lastDayOfYear()

Возвращает корректор «последнего дня года», который возвращает новую дату, установленную на последний день текущего года.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 вернет 2011-12-31.
Ввод 2011-02-15 вернет 2011-12-31.

Это поведение подходит для большинства систем календарей. Оно эквивалентно:

long lastDay = temporal.range(DAY_OF_YEAR).getMaximum();
  temporal.with(DAY_OF_YEAR, lastDay);
Возвращает:
корректор последнего дня года, не null

firstDayOfNextYear

public static TemporalAdjuster firstDayOfNextYear()

Возвращает корректор «первого дня следующего года», который возвращает новую дату, установленную на первый день следующего года.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 вернет 2012-01-01.

Это поведение подходит для большинства систем календарей. Оно эквивалентно:

temporal.with(DAY_OF_YEAR, 1).plus(1, YEARS);
Возвращает:
корректор первого дня следующего месяца, не null

firstInMonth

public static TemporalAdjuster firstInMonth(DayOfWeek dayOfWeek)

Возвращает корректор «первого дня в месяце», который возвращает новую дату в том же месяце с первым совпадающим днем недели. Используется для выражений, таких как «первое вторник марта».

Система календаря ISO ведет себя следующим образом:
Ввод 2011-12-15 для (ПОНЕДЕЛЬНИК) вернет 2011-12-05.
Ввод 2011-12-15 для (ПЯТНИЦА) вернет 2011-12-02.

Это поведение подходит для большинства систем календарей. Оно использует поля DAY_OF_WEEK и DAY_OF_MONTH и единицу DAYS, и предполагает семидневную неделю.

Параметры:
dayOfWeek - день недели, не null
Возвращает:
корректор первого дня в месяце, не null

lastInMonth

public static TemporalAdjuster lastInMonth(DayOfWeek dayOfWeek)

Возвращает корректор «последнего дня в месяце», который возвращает новую дату в том же месяце с последним совпадающим днем недели. Используется для выражений, таких как «последнее вторник марта».

Система календаря ISO ведет себя следующим образом:
Ввод 2011-12-15 для (ПОНЕДЕЛЬНИК) вернет 2011-12-26.
Ввод 2011-12-15 для (ПЯТНИЦА) вернет 2011-12-30.

Это поведение подходит для большинства систем календарей. Оно использует поля DAY_OF_WEEK и DAY_OF_MONTH и единицу DAYS, и предполагает семидневную неделю.

Параметры:
dayOfWeek - день недели, не null
Возвращает:
корректор первого дня в месяце, не null

dayOfWeekInMonth

public static TemporalAdjuster dayOfWeekInMonth(int ordinal,
                                                DayOfWeek dayOfWeek)

Возвращает корректор «день недели в месяце», который возвращает новую дату в том же месяце с порядковым днем недели. Используется для выражений, таких как «второе вторник марта».

Система календаря ISO ведет себя следующим образом:
Ввод 2011-12-15 для (1,ВТОРНИК) вернет 2011-12-06.
Ввод 2011-12-15 для (2,ВТОРНИК) вернет 2011-12-13.
Ввод 2011-12-15 для (3,ВТОРНИК) вернет 2011-12-20.
Ввод 2011-12-15 для (4,ВТОРНИК) вернет 2011-12-27.
Ввод 2011-12-15 для (5,ВТОРНИК) вернет 2012-01-03.
Ввод 2011-12-15 для (-1,ВТОРНИК) вернет 2011-12-27 (последний день в месяце).
Ввод 2011-12-15 для (-4,ВТОРНИК) вернет 2011-12-06 (на 3 недели ранее последнего дня месяца).
Ввод 2011-12-15 для (-5,ВТОРНИК) вернет 2011-11-29 (на 4 недели ранее последнего дня месяца).
Ввод 2011-12-15 для (0,ВТОРНИК) вернет 2011-11-29 (последний день в предыдущем месяце).

Для положительного или нулевого порядка алгоритм эквивалентен нахождению первого дня недели, соответствующего месяцу, а затем добавлению к нему числа недель. Для отрицательного порядка алгоритм эквивалентен нахождению последнего дня недели, соответствующего месяцу, а затем вычитанию числа недель. Число недель не проверяется и интерпретируется гибко в соответствии с этим алгоритмом. Это определение означает, что порядок 0 находит последний соответствующий день недели в предыдущем месяце.

Это поведение подходит для большинства систем календарей. Оно использует поля DAY_OF_WEEK и DAY_OF_MONTH и единицу DAYS, и предполагает семидневную неделю.

Параметры:
ordinal - неделя в месяце, без ограничений, но обычно от -5 до 5
dayOfWeek - день недели, не null
Возвращает:
корректор дня недели в месяце, не null

next

public static TemporalAdjuster next(DayOfWeek dayOfWeek)

Возвращает корректор «следующего дня недели», который корректирует дату до первого появления указанного дня недели после корректируемой даты.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 (суббота) для параметра (ПОНЕДЕЛЬНИК) вернет 2011-01-17 (через два дня).
Ввод 2011-01-15 (суббота) для параметра (СРЕДА) вернет 2011-01-19 (через четыре дня).
Ввод 2011-01-15 (суббота) для параметра (СУББОТА) вернет 2011-01-22 (через семь дней).

Это поведение подходит для большинства систем календарей. Оно использует поле DAY_OF_WEEK и единицу DAYS, и предполагает семидневную неделю.

Параметры:
dayOfWeek - день недели, до которого нужно переместить дату, не null
Возвращает:
корректор следующего дня недели, не null

nextOrSame

public static TemporalAdjuster nextOrSame(DayOfWeek dayOfWeek)

Возвращает корректор «следующего или того же дня недели», который корректирует дату до первого появления указанного дня недели после корректируемой даты, если он уже не находится на этот день, возвращается тот же объект.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 (суббота) для параметра (ПОНЕДЕЛЬНИК) вернет 2011-01-17 (через два дня).
Ввод 2011-01-15 (суббота) для параметра (СРЕДА) вернет 2011-01-19 (через четыре дня).
Ввод 2011-01-15 (суббота) для параметра (СУББОТА) вернет 2011-01-15 (то же, что и вход).

Это поведение подходит для большинства систем календарей. Оно использует поле DAY_OF_WEEK и единицу DAYS, и предполагает семидневную неделю.

Параметры:
dayOfWeek - день недели, для проверки или перемещения даты, не null
Возвращает:
корректор следующего или того же дня недели, не null

previous

public static TemporalAdjuster previous(DayOfWeek dayOfWeek)

Возвращает корректор «предыдущего дня недели», который корректирует дату до первого появления указанного дня недели до корректируемой даты.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 (суббота) для параметра (ПОНЕДЕЛЬНИК) вернет 2011-01-10 (на пять дней раньше).
Ввод 2011-01-15 (суббота) для параметра (СРЕДА) вернет 2011-01-12 (на три дня раньше).
Ввод 2011-01-15 (суббота) для параметра (СУББОТА) вернет 2011-01-08 (на семь дней раньше).

Это поведение подходит для большинства систем календарей. Оно использует поле DAY_OF_WEEK и единицу DAYS, и предполагает семидневную неделю.

Параметры:
dayOfWeek - день недели, до которого нужно переместить дату, не null
Возвращает:
корректор предыдущего дня недели, не null

previousOrSame

public static TemporalAdjuster previousOrSame(DayOfWeek dayOfWeek)

Возвращает корректор «предыдущего или того же дня недели», который корректирует дату до первого появления указанного дня недели до корректируемой даты, если она уже находится на этот день, возвращается тот же объект.

Система календаря ISO ведет себя следующим образом:
Ввод 2011-01-15 (суббота) для параметра (ПОНЕДЕЛЬНИК) вернет 2011-01-10 (на пять дней раньше).
Ввод 2011-01-15 (суббота) для параметра (СРЕДА) вернет 2011-01-12 (на три дня раньше).
Ввод 2011-01-15 (суббота) для параметра (СУББОТА) вернет 2011-01-15 (то же, что и вход).

Это поведение подходит для большинства систем календарей. Оно использует поле DAY_OF_WEEK и единицу DAYS, и предполагает семидневную неделю.

Параметры:
dayOfWeek - день недели для проверки или переноса даты, не null
Возвращаемое значение:
корректировщик предыдущего или того же дня недели, не null

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API