アジャスタは、時間的オブジェクトを変更するための主要なツールです。 それらは、戦略デザイン・パターンのように、調整のプロセスを外部化して異なるアプローチを可能にするために存在します。 例として、週末を避けて日付を設定するアジャスタや、日付を月の最後の日に設定するアジャスタなどがあります。
 TemporalAdjusterには、2つの同等な使用方法があります。 1つ目は、インタフェース上でメソッドを直接呼び出す方法です。 2つ目は、Temporal.with(TemporalAdjuster)を使用する方法です。 
 
// these two lines are equivalent, but the second approach is recommended temporal = thisAdjuster.adjustInto(temporal); temporal = temporal.with(thisAdjuster);コード内での読みやすさが大幅に向上するため、2つ目のアプローチ(
with(TemporalAdjuster))を使用することをお薦めします。
 このクラスには、staticメソッドとして使用できるアジャスタの標準セットが含まれています。 これには次のものがあります。
- 月の最初または最後の日を見つける
- 翌月の最初の日を見つける
- その年の最初または最後の日を見つける
- 翌年の最初の日を見つける
- 月内の最初または最後の曜日(「6月の最初の水曜日」など)を見つける
- 次または前の曜日(「次の木曜日」など)を見つける
- 実装要件:
- staticメソッドによって提供される実装はすべて不変です。
- 導入されたバージョン:
- 1.8
- 関連項目:
- TemporalAdjuster
- 
メソッドのサマリー修飾子と型メソッド説明static TemporalAdjusterdayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek)月のスターで曜日を返します。月のスターでは、その月に基づいて序数の曜日が返されます。static TemporalAdjuster現在の月の最初の日に設定された新しい日付を返す「月の最初の日」アジャスタを返します。static TemporalAdjuster翌月の最初の日に設定された新しい日付を返す「翌月の最初の日」アジャスタを返します。static TemporalAdjuster翌年の最初の日に設定された新しい日付を返す「翌年の最初の日」アジャスタを返します。static TemporalAdjuster現在の年の最初の日に設定された新しい日付を返す「年の最初の日」アジャスタを返します。static TemporalAdjusterfirstInMonth(DayOfWeek dayOfWeek)一致する最初の曜日を持つ同じ月の新しい日付を返す、月の初出アジャスタを返します。static TemporalAdjuster現在の月の最後の日に設定された新しい日付を返す「月の最後の日」アジャスタを返します。static TemporalAdjuster現在の年の最後の日に設定された新しい日付を返す「年の最後の日」アジャスタを返します。static TemporalAdjusterlastInMonth(DayOfWeek dayOfWeek)一致する最後の曜日を持つ同じ月の新しい日付を返す、月の最終アジャスタを返します。static TemporalAdjuster調整対象の日付より後で指定された曜日が最初に出現する日に日付を調整する、次の曜日アジャスタを返します。static TemporalAdjusternextOrSame(DayOfWeek dayOfWeek)調整対象の日付より後で指定された曜日が最初に出現する日に日付を調整する「次の曜日または同日」アジャスタを返します(ただし、日付がすでにその曜日だった場合は同じオブジェクトが返される)。static TemporalAdjusterofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster)日付アジャスタをラップしたTemporalAdjusterを取得します。static TemporalAdjuster調整対象の日付より前で指定された曜日が最初に出現する日に日付を調整する、前の曜日アジャスタを返します。static TemporalAdjusterpreviousOrSame(DayOfWeek dayOfWeek)調整対象の日付より前で指定された曜日が最初に出現する日に日付を調整する「前の曜日または同日」アジャスタを返します(ただし、日付がすでにその曜日だった場合は同じオブジェクトが返される)。
- 
メソッドの詳細- 
ofDateAdjusterpublic static TemporalAdjuster ofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster)日付アジャスタをラップしたTemporalAdjusterを取得します。TemporalAdjusterは、低レベルのTemporalインタフェースに基づいています。 このメソッドでは、LocalDateからLocalDateへの調整をtemporalベースのインタフェースと一致するようにラップできます。 これは、ユーザーが記述するアジャスタをより簡単にするために便宜上提供されています。一般に、ユーザーが記述するアジャスタはstatic定数になります。 static TemporalAdjuster TWO_DAYS_LATER = TemporalAdjusters.ofDateAdjuster(date -> date.plusDays(2));- パラメータ:
- dateBasedAdjuster- 日付ベースのアジャスタ、nullでない
- 戻り値:
- 日付アジャスタに対するtemporalアジャスタのラッピング、nullでない
 
- 
firstDayOfMonthpublic static TemporalAdjuster firstDayOfMonth()現在の月の最初の日に設定された新しい日付を返す「月の最初の日」アジャスタを返します。ISO暦体系では、次のように動作します。 
 入力2011-01-15によって、2011-01-01が返されます。
 入力2011-02-15によって、2011-02-01が返されます。この動作は、ほとんどの暦体系での使用に適しています。 これは次と同等です。 temporal.with(DAY_OF_MONTH, 1); - 戻り値:
- 最初の「月の日」アジャスタ、nullでない
 
- 
lastDayOfMonthpublic 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でない
 
- 
firstDayOfNextMonthpublic 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でない
 
- 
firstDayOfYearpublic static TemporalAdjuster firstDayOfYear()現在の年の最初の日に設定された新しい日付を返す「年の最初の日」アジャスタを返します。ISO暦体系では、次のように動作します。 
 入力2011-01-15によって、2011-01-01が返されます。
 入力2011-02-15によって、2011-01-01が返されます。
 この動作は、ほとんどの暦体系での使用に適しています。 これは次と同等です。 temporal.with(DAY_OF_YEAR, 1); - 戻り値:
- 最初の「年の日」アジャスタ、nullでない
 
- 
lastDayOfYearpublic 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でない
 
- 
firstDayOfNextYearpublic static TemporalAdjuster firstDayOfNextYear()翌年の最初の日に設定された新しい日付を返す「翌年の最初の日」アジャスタを返します。ISO暦体系では、次のように動作します。 
 入力2011-01-15によって、2012-01-01が返されます。この動作は、ほとんどの暦体系での使用に適しています。 これは次と同等です。 temporal.with(DAY_OF_YEAR, 1).plus(1, YEARS); - 戻り値:
- 翌月の最初の日アジャスタ、nullでない
 
- 
firstInMonthpublic static TemporalAdjuster firstInMonth(DayOfWeek dayOfWeek)一致する最初の曜日を持つ同じ月の新しい日付を返す、月の初出アジャスタを返します。 これは、「3月の最初の火曜日」のような表現のために使用されます。ISO暦体系では、次のように動作します。 
 (MONDAY)に対する入力2011-12-15によって、2011-12-05が返されます。
 (FRIDAY)に対する入力2011-12-15によって、2011-12-02が返されます。
 この動作は、ほとんどの暦体系での使用に適しています。 DAY_OF_WEEKおよびDAY_OF_MONTHフィールドとDAYS単位を使用し、1週間を7日とみなします。- パラメータ:
- dayOfWeek- 曜日、nullでない
- 戻り値:
- 月の最初の日アジャスタ、nullでない
 
- 
lastInMonthpublic static TemporalAdjuster lastInMonth(DayOfWeek dayOfWeek)一致する最後の曜日を持つ同じ月の新しい日付を返す、月の最終アジャスタを返します。 これは、「3月の最後の火曜日」のような表現のために使用されます。ISO暦体系では、次のように動作します。 
 (MONDAY)に対する入力2011-12-15によって、2011-12-26が返されます。
 (FRIDAY)に対する入力2011-12-15によって、2011-12-30が返されます。
 この動作は、ほとんどの暦体系での使用に適しています。 DAY_OF_WEEKおよびDAY_OF_MONTHフィールドとDAYS単位を使用し、1週間を7日とみなします。- パラメータ:
- dayOfWeek- 曜日、nullでない
- 戻り値:
- 月の最初の日アジャスタ、nullでない
 
- 
dayOfWeekInMonthpublic static TemporalAdjuster dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek)月のスターで曜日を返します。月のスターでは、その月に基づいて序数の曜日が返されます。 これは、「3月の第2火曜日」のような表現のために使用されます。ISO暦体系では、次のように動作します。 
 (1,TUESDAY)に対する入力2011-12-15によって、2011-12-06が返されます。
 (2,TUESDAY)に対する入力2011-12-15によって、2011-12-13が返されます。
 (3,TUESDAY)に対する入力2011-12-15によって、2011-12-20が返されます。
 (4,TUESDAY)に対する入力2011-12-15によって、2011-12-27が返されます。
 (5,TUESDAY)に対する入力2011-12-15によって、2012-01-03が返されます。
 (-1,TUESDAY)に対する入力2011-12-15によって、2011-12-27(月の最後)が返されます。
 (-4,TUESDAY)に対する入力2011-12-15によって、2011-12-06(月の最後の3週間前)が返されます。
 (-5,TUESDAY)に対する入力2011-12-15によって、2011-11-29(月の最後の4週間前)が返されます。
 (0,TUESDAY)に対する入力2011-12-15によって、2011-11-29(前月の最後)が返されます。
 ordinalが正またはゼロの場合のアルゴリズムは、その月内で一致する最初の曜日を見つけて、それに週数を加算するのと同等です。 ordinalが負の場合のアルゴリズムは、その月内で一致する最後の曜日を見つけて、それから週数を減算するのと同等です。 週の序数は検証されず、このアルゴリズムに従って緩やかに解釈されます。 この定義によれば、ordinalがゼロの場合は、前月の最後に一致する曜日が検索されます。 この動作は、ほとんどの暦体系での使用に適しています。 DAY_OF_WEEKおよびDAY_OF_MONTHフィールドとDAYS単位を使用し、1週間を7日とみなします。- パラメータ:
- ordinal- その月内の週。制限はないが、通常は-5から5まで
- dayOfWeek- 曜日、nullでない
- 戻り値:
- 月内の曜日アジャスタ、nullでない
 
- 
nextpublic static TemporalAdjuster next(DayOfWeek dayOfWeek)調整対象の日付より後で指定された曜日が最初に出現する日に日付を調整する、次の曜日アジャスタを返します。ISO暦体系では、次のように動作します。 
 パラメータ(MONDAY)に対する入力2011-01-15(土曜日)によって、2011-01-17(2日後)が返されます。
 パラメータ(WEDNESDAY)に対する入力2011-01-15(土曜日)によって、2011-01-19(4日後)が返されます。
 パラメータ(SATURDAY)に対する入力2011-01-15(土曜日)によって、2011-01-22(7日後)が返されます。この動作は、ほとんどの暦体系での使用に適しています。 DAY_OF_WEEKフィールドとDAYS単位を使用し、1週間を7日とみなします。- パラメータ:
- dayOfWeek- 日付の移動先となる曜日、nullでない
- 戻り値:
- 次の曜日アジャスタ、nullでない
 
- 
nextOrSamepublic static TemporalAdjuster nextOrSame(DayOfWeek dayOfWeek)調整対象の日付より後で指定された曜日が最初に出現する日に日付を調整する「次の曜日または同日」アジャスタを返します(ただし、日付がすでにその曜日だった場合は同じオブジェクトが返される)。ISO暦体系では、次のように動作します。 
 パラメータ(MONDAY)に対する入力2011-01-15(土曜日)によって、2011-01-17(2日後)が返されます。
 パラメータ(WEDNESDAY)に対する入力2011-01-15(土曜日)によって、2011-01-19(4日後)が返されます。
 パラメータ(SATURDAY)に対する入力2011-01-15(土曜日)によって、2011-01-15(入力と同じ)が返されます。この動作は、ほとんどの暦体系での使用に適しています。 DAY_OF_WEEKフィールドとDAYS単位を使用し、1週間を7日とみなします。- パラメータ:
- dayOfWeek- 確認する、または日付の移動先となる曜日、nullでない
- 戻り値:
- 次または同じ曜日アジャスタ、nullでない
 
- 
previouspublic static TemporalAdjuster previous(DayOfWeek dayOfWeek)調整対象の日付より前で指定された曜日が最初に出現する日に日付を調整する、前の曜日アジャスタを返します。ISO暦体系では、次のように動作します。 
 パラメータ(MONDAY)に対する入力2011-01-15(土曜日)によって、2011-01-10(5日前)が返されます。
 パラメータ(WEDNESDAY)に対する入力2011-01-15(土曜日)によって、2011-01-12(3日前)が返されます。
 パラメータ(SATURDAY)に対する入力2011-01-15(土曜日)によって、2011-01-08(7日前)が返されます。この動作は、ほとんどの暦体系での使用に適しています。 DAY_OF_WEEKフィールドとDAYS単位を使用し、1週間を7日とみなします。- パラメータ:
- dayOfWeek- 日付の移動先となる曜日、nullでない
- 戻り値:
- 前の曜日アジャスタ、nullでない
 
- 
previousOrSamepublic static TemporalAdjuster previousOrSame(DayOfWeek dayOfWeek)調整対象の日付より前で指定された曜日が最初に出現する日に日付を調整する「前の曜日または同日」アジャスタを返します(ただし、日付がすでにその曜日だった場合は同じオブジェクトが返される)。ISO暦体系では、次のように動作します。 
 パラメータ(MONDAY)に対する入力2011-01-15(土曜日)によって、2011-01-10(5日前)が返されます。
 パラメータ(WEDNESDAY)に対する入力2011-01-15(土曜日)によって、2011-01-12(3日前)が返されます。
 パラメータ(SATURDAY)に対する入力2011-01-15(土曜日)によって、2011-01-15(入力と同じ)が返されます。この動作は、ほとんどの暦体系での使用に適しています。 DAY_OF_WEEKフィールドとDAYS単位を使用し、1週間を7日とみなします。- パラメータ:
- dayOfWeek- 確認する、または日付の移動先となる曜日、nullでない
- 戻り値:
- 前または同じ曜日アジャスタ、nullでない
 
 
-