モジュール java.base
パッケージ java.time.temporal

クラスIsoFields

java.lang.Object
java.time.temporal.IsoFields

public final class IsoFields
extends Object
四半期、暦週の基準年など、ISO-8601暦体系に固有のフィールドと単位です。

このクラスは、ISO暦体系に固有のフィールドと単位を定義します。

四半期

ISO-8601標準は、標準の12か月からなる年に基づいています。 これは一般的に4つの四半期に分割され、Q1、Q2、Q3、Q4と省略されることがよくあります。

1月、2月および3月はQ1に含まれます。 4月、5月および6月はQ2に含まれます。 7月、8月および9月はQ3に含まれます。 10月、11月および12月はQ4に含まれます。

完全な日付は次の3つのフィールドを使用して表されます。

暦週の基準年

ISO-8601標準は当初、日付と時間の文字列フォーマットを定義するデータ交換フォーマットとして意図されました。 ただし、暦週の基準年の概念に基づいて日付を表現する代替方法も定義しています。

日付は次の3つのフィールドを使用して表されます。

暦週の基準年自体は、標準のISO先発暦の年を基準にして定義されます。 これは常に月曜日から始まるという点で、標準の年とは異なります。

暦週の基準年の最初の週は、標準のISO暦の年の新年の少なくとも4日間を含む、月曜日から始まる最初の週です。

  • 1月1日が月曜日の場合、週1は1月1日から始まります。
  • 1月1日が火曜日の場合、週1は1つ前の標準の年の12月31日から始まります。
  • 1月1日が水曜日の場合、週1は1つ前の標準の年の12月30日から始まります。
  • 1月1日が木曜日の場合、週1は1つ前の標準の年の12月29日から始まります。
  • 1月1日が金曜日の場合、週1は1月4日から始まります。
  • 1月1日が土曜日の場合、週1は1月3日から始まります。
  • 1月1日が日曜日の場合、週1は1月2日から始まります。
ほとんどの暦週の基準年には52週ありますが、53週ある場合もあります。

たとえば、

暦週の基準年の例
日付曜日フィールド値
2008-12-28日曜日暦週の基準年2008の週52
2008-12-29月曜日暦週の基準年2009の週1
2008-12-31水曜日暦週の基準年2009の週1
2009-01-01木曜日暦週の基準年2009の週1
2009-01-04日曜日暦週の基準年2009の週1
2009-01-05月曜日暦週の基準年2009の週2

実装要件:

このクラスは不変でスレッドセーフです。

導入されたバージョン:
1.8
  • フィールド詳細

    • DAY_OF_QUARTER

      public static final TemporalField DAY_OF_QUARTER
      四半期の何日目かを表すフィールドです。

      このフィールドでは、四半期の何日目かを表す値の問合せと設定ができます。 「四半期の日」の値は、標準の年のQ1では1から90まで、うるう年のQ1では1から91まで、Q2では1から91まで、Q3とQ4では1から92までになります。

      「四半期の日」を計算できるのは、「年の日」、月、および年が使用可能な場合のみです。

      このフィールドの設定時は、値は部分的に非厳密であることが許され、1から92までの任意の値を取ることができます。 四半期が92日未満の場合、日92は次の四半期に含まれ、日91もその可能性があります。

      解析時の解決フェーズでは、年、四半期、および「四半期の日」から日付を作成できます。

      厳密モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「四半期の日」フィールドは、年と四半期に応じて、1から90、91または92の間で検証されます。

      スマート・モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「四半期の日」フィールドは、年と四半期に基づく実際の範囲を無視して、1から92の間で検証されます。 「四半期の日」が実際の範囲を1日だけ超える場合、結果となる日付は1日後の日付になります。 「四半期の日」が実際の範囲を2日だけ超える場合、結果となる日付は2日後の日付になります。

      非厳密モードでは、年だけが有効値の範囲に対して検証されます。 結果となる日付は、次の3段階方式と等価の方法で計算されます。 まず、要求された年の1月1日において日付を作成します。 次に、四半期の値から1を減算し、その四半期数を日付に加算します。 最後に、「四半期の日」の値から1を減算し、その日数を日付に加算します。

      この単位は不変でスレッドセーフなシングルトンです。

    • QUARTER_OF_YEAR

      public static final TemporalField QUARTER_OF_YEAR
      四半期を表すフィールドです。

      このフィールドでは、四半期を表す値の問合せと設定ができます。 四半期の値は1から4までです。

      四半期を計算できるのは、月が使用可能な場合のみです。

      解析時の解決フェーズでは、年、四半期、および「四半期の日」から日付を作成できます。 詳細は、DAY_OF_QUARTERを参照してください。

      この単位は不変でスレッドセーフなシングルトンです。

    • WEEK_OF_WEEK_BASED_YEAR

      public static final TemporalField WEEK_OF_WEEK_BASED_YEAR
      暦週の基準年の何週目かを表すフィールドです。

      このフィールドでは、暦週の基準年の何週目かを表す値の問合せと設定ができます。 「暦週の基準年の週番号」の値は1から52 (暦週の基準年に53週ある場合は53)までです。

      解析時の解決フェーズでは、「暦週の基準年」、「暦週の基準年の週番号」、および曜日から日付を作成できます。

      厳密モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「暦週の基準年の週番号」フィールドは、暦週の基準年に応じて、1から52または53の間で検証されます。

      スマート・モードでは、3つすべてのフィールドがそれぞれの有効値の範囲に対して検証されます。 「暦週の基準年の週番号」フィールドは、暦週の基準年を無視して、1から53の間で検証されます。 「暦週の基準年の週番号」が53で、暦週の基準年に52週しかない場合、結果となる日付は次の暦週の基準年の週1に含まれます。

      非厳密モードでは、「暦週の基準年」だけが有効値の範囲に対して検証されます。 曜日が1から7の範囲外にある場合、結果となる日付は、曜日が1から7の範囲に収まるように適切な週数だけ調整されます。 「暦週の基準年の週番号」の値が1から52の範囲外にある場合は、結果となる日付に対して超過週数が加算または減算されます。

      この単位は不変でスレッドセーフなシングルトンです。

    • WEEK_BASED_YEAR

      public static final TemporalField WEEK_BASED_YEAR
      暦週の基準年を表すフィールドです。

      このフィールドでは、暦週の基準年を表す値の問合せと設定ができます。

      フィールドの範囲はLocalDate.MAXLocalDate.MINに一致します。

      解析時の解決フェーズでは、「暦週の基準年」、「暦週の基準年の週番号」、および曜日から日付を作成できます。 詳細は、WEEK_OF_WEEK_BASED_YEARを参照してください。

      この単位は不変でスレッドセーフなシングルトンです。

    • WEEK_BASED_YEARS

      public static final TemporalUnit WEEK_BASED_YEARS
      加算および減算の目的で暦週の基準年を表す単位です。

      これを使用すると、暦週の基準年の数を日付に加算または減算できます。 単位は52週または53週と等しくなります。 暦週の基準年の推定デュレーションは、標準のISO暦の年と同じ365.2425日です。

      加算ルールでは、暦週の基準年の数が「暦週の基準年」フィールドの既存値に加算されます。 結果となる暦週の基準年に52週しかない場合、日付は次の暦週の基準年の週1に含まれます。

      この単位は不変でスレッドセーフなシングルトンです。

    • QUARTER_YEARS

      public static final TemporalUnit QUARTER_YEARS
      四半期の概念を表す単位です。 ISO暦体系の場合、これは3か月と等しくなります。 四半期の推定デュレーションは、365.2425日の4分の1です。

      この単位は不変でスレッドセーフなシングルトンです。