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

列挙型クラスChronoField

java.lang.Object
java.lang.Enum<ChronoField>
java.time.temporal.ChronoField
すべての実装されたインタフェース:
Serializable, Comparable<ChronoField>, Constable, TemporalField

public enum ChronoField extends Enum<ChronoField> implements TemporalField
フィールドの標準セット。

このフィールド・セットは、日付、時間、または日付/時間を操作するためのフィールド・ベースのアクセスを提供します。 標準のフィールド・セットは、TemporalFieldを実装することによって拡張できます。

これらのフィールドは、複数の暦体系に適用できると想定されています。 たとえば、ISO以外の暦体系の多くは、ルールは多少異なっても、日付を年、月、および日で定義しています。 各フィールドのドキュメントには、そのフィールドの動作が説明されています。

実装要件:
これは不変でスレッドセーフな最終の列挙型です。
導入されたバージョン:
1.8
  • 列挙型定数の詳細

    • NANO_OF_SECOND

      public static final ChronoField NANO_OF_SECOND
      1秒のうちのナノ秒。

      これは1秒のうちのナノ秒を0から999,999,999の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは「1秒のうちのナノ秒」を表すために使用され、秒の小数部を扱います。 TemporalAccessorの実装では、SECOND_OF_MINUTESECOND_OF_DAY、またはINSTANT_SECONDSの値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。

      このフィールドを使用して値を設定するときは、オブジェクトが格納する精度と同じ精度で設定してください。余分な精度は整数除算を使用して削除します。 たとえば、TemporalAccessorが時間をミリ秒の精度で格納する場合は、「1秒のうちのナノ秒」を1,000,000で割ってから、「1秒のうちのミリ秒」を置き換える必要があります。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 フィールドがMILLI_OF_SECONDおよびMICRO_OF_SECONDとの組合せで解決されます。

    • NANO_OF_DAY

      public static final ChronoField NANO_OF_DAY
      1日のうちのナノ秒。

      これは1日のうちのナノ秒を0から(24 * 60 * 60 * 1,000,000,000) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは「1日のうちのナノ秒」を表すために使用され、秒の小数部を扱います。 TemporalAccessorの実装では、SECOND_OF_DAYの値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値がNANO_OF_SECONDSECOND_OF_MINUTEMINUTE_OF_HOUR、およびHOUR_OF_DAYフィールドに分割されます。

    • MICRO_OF_SECOND

      public static final ChronoField MICRO_OF_SECOND
      1秒のうちのマイクロ秒。

      これは1秒のうちのマイクロ秒を0から999,999の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは「1秒のうちのマイクロ秒」を表すために使用され、秒の小数部を扱います。 TemporalAccessorの実装では、SECOND_OF_MINUTESECOND_OF_DAY、またはINSTANT_SECONDSの値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。

      このフィールドを使用して値を設定するときは、1,000を掛けた値でNANO_OF_SECONDを設定する場合と同じ方法で設定してください。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 フィールドがMILLI_OF_SECONDとの組合せで解決されて、NANO_OF_SECONDが生成されます。

    • MICRO_OF_DAY

      public static final ChronoField MICRO_OF_DAY
      1日のうちのマイクロ秒。

      これは1日のうちのマイクロ秒を0から(24 * 60 * 60 * 1,000,000) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは「1日のうちのマイクロ秒」を表すために使用され、秒の小数部を扱います。 TemporalAccessorの実装では、SECOND_OF_DAYの値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。

      このフィールドを使用して値を設定するときは、1,000を掛けた値でNANO_OF_DAYを設定する場合と同じ方法で設定してください。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値がMICRO_OF_SECONDSECOND_OF_MINUTEMINUTE_OF_HOUR、およびHOUR_OF_DAYフィールドに分割されます。

    • MILLI_OF_SECOND

      public static final ChronoField MILLI_OF_SECOND
      1秒のうちのミリ秒。

      これは1秒のうちのミリ秒を0から999の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは「1秒のうちのミリ秒」を表すために使用され、秒の小数部を扱います。 TemporalAccessorの実装では、SECOND_OF_MINUTESECOND_OF_DAY、またはINSTANT_SECONDSの値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。

      このフィールドを使用して値を設定するときは、1,000,000を掛けた値でNANO_OF_SECONDを設定する場合と同じ方法で設定してください。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 フィールドがMICRO_OF_SECONDとの組合せで解決されて、NANO_OF_SECONDが生成されます。

    • MILLI_OF_DAY

      public static final ChronoField MILLI_OF_DAY
      1日のうちのミリ秒。

      これは1日のうちのミリ秒を0から(24 * 60 * 60 * 1,000) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは「1日のうちのミリ秒」を表すために使用され、秒の小数部を扱います。 TemporalAccessorの実装では、SECOND_OF_DAYの値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。

      このフィールドを使用して値を設定するときは、1,000,000を掛けた値でNANO_OF_DAYを設定する場合と同じ方法で設定してください。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値がMILLI_OF_SECONDSECOND_OF_MINUTEMINUTE_OF_HOUR、およびHOUR_OF_DAYフィールドに分割されます。

    • SECOND_OF_MINUTE

      public static final ChronoField SECOND_OF_MINUTE
      秒。

      これは1分のうちの秒を0から59の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。

    • SECOND_OF_DAY

      public static final ChronoField SECOND_OF_DAY
      1日のうちの秒。

      これは1日のうちの秒を0から(24 * 60 * 60) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値がSECOND_OF_MINUTEMINUTE_OF_HOUR、およびHOUR_OF_DAYフィールドに分割されます。

    • MINUTE_OF_HOUR

      public static final ChronoField MINUTE_OF_HOUR
      分。

      これは1時間のうちの分を0から59の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。

    • MINUTE_OF_DAY

      public static final ChronoField MINUTE_OF_DAY
      1日のうちの分。

      これは1日のうちの分を0から(24 * 60) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値がMINUTE_OF_HOURおよびHOUR_OF_DAYフィールドに分割されます。

    • HOUR_OF_AMPM

      public static final ChronoField HOUR_OF_AMPM
      午前または午後の時。

      これは午前/午後の時を0から11の範囲でカウントします。 これは標準の12時間デジタル時計に表示される時です。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは、0から11の範囲で値が検証されます。 非厳密モードでは値は検証されません。 これをAMPM_OF_DAYと組み合せて、AMPM_OF_DAY値に12を掛けてHOUR_OF_DAYを形成します。

      CLOCK_HOUR_OF_AMPMを参照して、1から12までの時間をカウントする関連フィールドを確認します。

    • CLOCK_HOUR_OF_AMPM

      public static final ChronoField CLOCK_HOUR_OF_AMPM
      午前または午後のクロック時間。

      これは午前/午後の時を1から12の範囲でカウントします。 これは標準の12時間アナログ時計に表示される時です。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密モードでは1から12、スマート・モードでは0から12の範囲で、値が検証されます。 非厳密モードでは値は検証されません。 このフィールドは、値が12でない場合は同じ値のHOUR_OF_AMPMに変換され、値が12の場合は0に変換されます。

      HOUR_OF_AMPMには、0〜11の時間をカウントする関連フィールドがあります。

    • HOUR_OF_DAY

      public static final ChronoField HOUR_OF_DAY
      時。

      これは1日のうちの時を0から23の範囲でカウントします。 これは標準の24時間デジタル時計に表示される時です。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 フィールドがMINUTE_OF_HOURSECOND_OF_MINUTE、およびNANO_OF_SECONDと組み合わされて、LocalTimeが生成されます。 非厳密モードでは、超過日数は解析された日付に加算されるか、DateTimeFormatter.parsedExcessDays()を介して使用可能になります。

      CLOCK_HOUR_OF_DAYを参照して、1〜24の時間をカウントする関連フィールドを確認します。

    • CLOCK_HOUR_OF_DAY

      public static final ChronoField CLOCK_HOUR_OF_DAY
      1日のうちのクロック時間。

      1~24の時間帯をカウントします。 これは24時間アナログ時計に表示される時です。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密モードでは1から24、スマート・モードでは0から24の範囲で、値が検証されます。 非厳密モードでは値は検証されません。 このフィールドは、値が24でない場合は同じ値のHOUR_OF_DAYに変換され、値が24の場合は0に変換されます。

      HOUR_OF_DAYには、0〜23の時間をカウントする関連フィールドがあります。

    • AMPM_OF_DAY

      public static final ChronoField AMPM_OF_DAY
      1日の午前または午後。

      これは1日のうちの午前/午後を0 (午前)から1 (午後)の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。

      このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは、0から1の範囲で値が検証されます。 非厳密モードでは値は検証されません。 これをHOUR_OF_AMPM (存在しない場合は、'6'にデフォルト設定されます)と組み合せて、AMPM_OF_DAY値に12を掛けてHOUR_OF_DAYを形成します。

    • DAY_OF_WEEK

      public static final ChronoField DAY_OF_WEEK
      火曜日などの曜日。

      これは曜日の標準的な概念を表します。 デフォルトのISO暦体系では、月曜(1)から日曜(7)までの値を取ります。 DayOfWeekクラスを使用して結果を解釈できます。

      ISO以外の暦体系の多くでも、ISOと同様に7日からなる週が定義されています。 このような暦体系では、DayOfWeekを使用できるように、月曜(1)から日曜(7)までの同じ番号付けを使用する必要もあります。

      7日からなる標準的な週を使用しない暦体系では、週に似た期間に名前または番号の付けられた日が含まれる類似の概念がある場合に、このフィールドを実装するようにしてください。 番号付けは1から始めることをお薦めします。

    • ALIGNED_DAY_OF_WEEK_IN_MONTH

      public static final ChronoField ALIGNED_DAY_OF_WEEK_IN_MONTH
      月のうちの位置合せされた曜日。

      これは、週が月の開始に位置合せされる場合の、ある週の期間に含まれる日のカウントの概念を表します。 通常、このフィールドはALIGNED_WEEK_OF_MONTHとともに使用されます。

      たとえば、7日からなる週を使用する暦体系では、最初の「位置合せされた月の週番号」は「月の日」1から始まり、2番目の「位置合せされた月の週番号」は「月の日」8から始まる、というようになります。 これらの位置合せされた各週に含まれる日に1から7までの番号が付けられ、このフィールドの値として返されます。 したがって、「月の日」1から7では、「位置合せされた曜日」の値は1から7になります。 また、「月の日」8から14でもこれが繰り返され、「位置合せされた曜日」の値は1から7になります。

      7日からなる週を使用しない暦体系では、週の長さは異なるものを使用しますが、通常は同じ方法でこのフィールドを実装するようにしてください。

    • ALIGNED_DAY_OF_WEEK_IN_YEAR

      public static final ChronoField ALIGNED_DAY_OF_WEEK_IN_YEAR
      年のうちの位置合せされた曜日。

      これは、週が年の開始に位置合せされる場合の、ある週の期間に含まれる日のカウントの概念を表します。 通常、このフィールドはALIGNED_WEEK_OF_YEARとともに使用されます。

      たとえば、7日からなる週を使用する暦体系では、最初の「位置合せされた年の週番号」は「年の日」1から始まり、2番目の「位置合せされた年の週番号」は「年の日」8から始まる、というようになります。 これらの位置合せされた各週に含まれる日に1から7までの番号が付けられ、このフィールドの値として返されます。 したがって、「年の日」1から7では、「位置合せされた曜日」の値は1から7になります。 また、「年の日」8から14でもこれが繰り返され、「位置合せされた曜日」の値は1から7になります。

      7日からなる週を使用しない暦体系では、週の長さは異なるものを使用しますが、通常は同じ方法でこのフィールドを実装するようにしてください。

    • DAY_OF_MONTH

      public static final ChronoField DAY_OF_MONTH
      月の日。

      これは月のうちの日の概念を表します。 デフォルトのISO暦体系では、ほとんどの月で1から31までの値を取ります。 4月、6月、9月、11月には1から30までの日があり、2月には1から28 (うるう年では29)までの日があります。

      ISO以外の暦体系では、その暦体系のユーザーにもっとも認められている「月の日」の値を使用して、このフィールドを実装するようにしてください。 これは通常、日を1からその月の長さまでカウントします。

    • DAY_OF_YEAR

      public static final ChronoField DAY_OF_YEAR
      年の日。

      これは年のうちの日の概念を表します。 デフォルトのISO暦体系では、標準の年で1から365まで、うるう年では1から366までの値を取ります。

      ISO以外の暦体系では、その暦体系のユーザーにもっとも認められている「年の日」の値を使用して、このフィールドを実装するようにしてください。 これは通常、日を1からその年の長さまでカウントします。

      ISO以外の暦体系では、月の番号が自然にリセットされる点とは異なる点で年の番号が変わる方式が使用されている場合があります。 たとえば、和暦体系では紀元の変更が任意の日付で発生する可能性があり、それによって年の番号が1にリセットされます。 紀元と年がリセットされると、「年の日」も1にリセットされますが、月や「月の日」はリセットされません。

    • EPOCH_DAY

      public static final ChronoField EPOCH_DAY
      Javaエポック1970-01-01 (ISO)を基準とするエポック日。

      このフィールドは、1970-01-01 (ISO)をゼロとして、日を順にカウントします。 これにはローカル時系列が使用され、オフセットとタイムゾーンは無視されることに注意してください。

      このフィールドは、すべての暦体系で同じ意味を持つように厳密に定義されます。 これは暦間での相互運用を保証するために必要です。

      EpochDayの範囲は、両方ともを含む(LocalDate.MIN.toEpochDay()、LocalDate.MAX.toEpochDay()の間です。

    • ALIGNED_WEEK_OF_MONTH

      public static final ChronoField ALIGNED_WEEK_OF_MONTH
      月のうちの位置合せされた週番号。

      これは、週が月の開始に位置合せされる場合の、ある月の期間に含まれる週のカウントの概念を表します。 通常、このフィールドはALIGNED_DAY_OF_WEEK_IN_MONTHとともに使用されます。

      たとえば、7日からなる週を使用する暦体系では、最初の「位置合せされた月の週番号」は「月の日」1から始まり、2番目の「位置合せされた月の週番号」は「月の日」8から始まる、というようになります。 したがって、「月の日」の値1から7までは「位置合せされた月の週番号」1に含まれ、「月の日」の値8から14までは「位置合せされた月の週番号」2に含まれる、というようになります。

      7日からなる週を使用しない暦体系では、週の長さは異なるものを使用しますが、通常は同じ方法でこのフィールドを実装するようにしてください。

    • ALIGNED_WEEK_OF_YEAR

      public static final ChronoField ALIGNED_WEEK_OF_YEAR
      年のうちの位置合せされた週番号。

      これは、週が年の開始に位置合せされる場合の、ある年の期間に含まれる週のカウントの概念を表します。 通常、このフィールドはALIGNED_DAY_OF_WEEK_IN_YEARとともに使用されます。

      たとえば、7日からなる週を使用する暦体系では、最初の「位置合せされた年の週番号」は「年の日」1から始まり、2番目の「位置合せされた年の週番号」は「年の日」8から始まる、というようになります。 したがって、「年の日」の値1から7までは「位置合せされた年の週番号」1に含まれ、「年の日」の値8から14までは「位置合せされた年の週番号」2に含まれる、というようになります。

      7日からなる週を使用しない暦体系では、週の長さは異なるものを使用しますが、通常は同じ方法でこのフィールドを実装するようにしてください。

    • MONTH_OF_YEAR

      public static final ChronoField MONTH_OF_YEAR
      3月などの月。

      これは年のうちの月の概念を表します。 デフォルトのISO暦体系では、1月(1)から12月(12)までの値を取ります。

      ISO以外の暦体系では、その暦体系のユーザーにもっとも認められている月の値を使用して、このフィールドを実装するようにしてください。 これは通常、月を1からカウントします。

    • PROLEPTIC_MONTH

      public static final ChronoField PROLEPTIC_MONTH
      先発暦の月(年0から順に月をカウント)。

      このフィールドは、先発暦0年の最初の月が値ゼロを持つものとして、月を順にカウントします。 後になるほど月の値は順に大きくなります。 前になるほど月の値は順に小さくなります。 月の並びにギャップや中断はありません。 これにはローカル時系列が使用され、オフセットとタイムゾーンは無視されることに注意してください。

      デフォルトのISO暦体系では、2012年6月の値は(2012 * 12 + 6 - 1)になります。 このフィールドは主に内部使用向けです。

      ISO以外の暦体系では、上記の定義に従ってこのフィールドを実装する必要があります。 これは、先発暦0年の開始から経過した月を単純にゼロからカウントします。 先発暦の年が完全に定義されているすべての暦体系には、0年が存在します。 0年を含まない最小の年が暦体系に存在する場合、このメソッドを定義するには0年を推定する必要があります。

    • YEAR_OF_ERA

      public static final ChronoField YEAR_OF_ERA
      紀元のうちの年。

      これは紀元のうちの年の概念を表します。 通常、このフィールドはERAとともに使用されます。

      日付を表す標準のメンタル・モデルは、年、月および日という3つの概念に基づいています。 これらは、YEARMONTH_OF_YEARおよびDAY_OF_MONTHフィールドにマップされます。 紀元には言及されていないことに注意してください。 日付を表す完全なモデルには、紀元、年、月および日という4つの概念が必要です。 これらは、ERAYEAR_OF_ERAMONTH_OF_YEARおよびDAY_OF_MONTHフィールドにマップされます。 このフィールドとYEARのどちらが使用されるかは、使用されているメンタル・モデルによって決まります。 このトピックの詳細については、ChronoLocalDateを参照してください。

      デフォルトのISO暦体系では、「BCE」と「CE」という2つの紀元が定義されています。 紀元「CE」は現在使用されているもので、紀元年は1から最大値まで進みます。 紀元「BCE」は1つ前の紀元で、紀元年は後ろへ進みます。

      たとえば、毎回1年を減算すると次のようになります。
      - 先発暦の年2 = 「CE」紀元年2
      - 先発暦の年1 = 「CE」紀元年1
      - 先発暦の年0 = 「BCE」紀元年1
      - 先発暦の年-1 = 「BCE」紀元年2

      実際には、ISO-8601標準で紀元は定義されていません。 また、ユリウス暦とグレゴリオ暦の間の切換えのため、ISOの紀元はよく知られているAD/BC紀元に揃っていません。

      ISO以外の暦体系では、その暦体系のユーザーにもっとも認められている紀元年の値を使用して、このフィールドを実装するようにしてください。 ほとんどの暦体系には紀元が2つだけ存在するため、紀元年の番号付けはISO暦体系で使用されるものと通常は同じです。 紀元年の値は、通常は常に正であるべきですが、これは必須ではありません。

    • YEAR

      public static final ChronoField YEAR
      2012などの先発暦の年。

      これは、負の数を使用して順にカウントした年の概念を表します。 先発暦の年は、紀元を基に解釈されることはありません。 先発暦の年から紀元年へのマッピングを示す例については、YEAR_OF_ERAを参照してください。

      日付を表す標準のメンタル・モデルは、年、月および日という3つの概念に基づいています。 これらは、YEARMONTH_OF_YEARおよびDAY_OF_MONTHフィールドにマップされます。 紀元には言及されていないことに注意してください。 日付を表す完全なモデルには、紀元、年、月および日という4つの概念が必要です。 これらは、ERAYEAR_OF_ERAMONTH_OF_YEARおよびDAY_OF_MONTHフィールドにマップされます。 このフィールドとYEAR_OF_ERAのどちらが使用されるかは、使用されているメンタル・モデルによって決まります。 このトピックの詳細については、ChronoLocalDateを参照してください。

      ISO以外の暦体系では、このフィールドを次のように実装するようにしてください。 暦体系に紀元が2つだけ存在する場合(固定の日付の前と後)、「先発暦の年」の値は、後の紀元では紀元年の値と同じになり、前の紀元では順に増加する負の値になります。 暦体系に3つ以上の紀元が存在する場合、「先発暦の年」の値は適切な任意の値で定義できます。ただし、ISOと同じになるように定義することが最善のオプションでしょう。

    • ERA

      public static final ChronoField ERA
      紀元。

      これは、時系列の最大の区分である紀元の概念を表します。 通常、このフィールドはYEAR_OF_ERAとともに使用されます。

      デフォルトのISO暦体系では、「BCE」と「CE」という2つの紀元が定義されています。 紀元「CE」は現在使用されているもので、紀元年は1から最大値まで進みます。 紀元「BCE」は1つ前の紀元で、紀元年は後ろへ進みます。 詳細な例については、YEAR_OF_ERAを参照してください。

      ISO以外の暦体系では、紀元を定義するためにこのフィールドを実装するようにしてください。 1970-01-01 (ISO)の時点でアクティブであった紀元に値1を割り当てる必要があります。 前になるほど紀元の値は順に小さくなる必要があります。 後になるほど紀元の値は順に大きくなる必要があります。

    • INSTANT_SECONDS

      public static final ChronoField INSTANT_SECONDS
      インスタントのエポック秒。

      これは、1970-01-01T00:00Z (ISO)をゼロとして順にカウントした秒の概念を表します。 このフィールドをNANO_OF_SECONDとともに使用して、秒の小数部を表すことができます。

      Instantは、時系列上の一瞬の点を表します。 インスタントは、単独でローカル日付/時間の取得を可能にするだけの十分な情報を持っていません。 オフセットまたはタイムゾーンと組み合せた場合のみ、ローカルの日付または時間を計算できます。

      このフィールドは、すべての暦体系で同じ意味を持つように厳密に定義されます。 これは暦間での相互運用を保証するために必要です。

    • OFFSET_SECONDS

      public static final ChronoField OFFSET_SECONDS
      UTC/グリニッジからのオフセット。

      これは、UTC/グリニッジからのローカル時間のオフセット(秒数)の概念を表します。

      ZoneOffsetは、ローカル時間とUTC/グリニッジの時間差を表します。 これは通常、時と分からなる固定の数値です。 オフセットの合計の秒数と等価です。 たとえば、冬の間、パリのオフセットは+01:00で、これは3600秒です。

      このフィールドは、すべての暦体系で同じ意味を持つように厳密に定義されます。 これは暦間での相互運用を保証するために必要です。

  • メソッドの詳細

    • values

      public static ChronoField[] values()
      この列挙クラスの定数を含む配列を宣言されている順序で 返します。
      戻り値:
      この列挙クラスの定数を宣言されている順序で含む配列
    • valueOf

      public static ChronoField valueOf(String name)
      指定された名前を持つこのクラスのenum定数を返します。 文字列は、このクラスでenum定数を宣言するために使用される識別子とexactlyと一致する必要があります。 (不適切な空白文字は許可されません。)
      パラメータ:
      name - 返される列挙型定数の名前。
      戻り値:
      指定された名前を持つ列挙型定数
      例外:
      IllegalArgumentException - この列挙型クラスに指定された名前の定数がない場合
      NullPointerException - 引数がnullの場合
    • getBaseUnit

      public TemporalUnit getBaseUnit()
      次のインタフェースからコピーされた説明: TemporalField
      フィールドの測定単位を取得します。

      フィールドの単位は、範囲内で変化する期間です。 たとえば、フィールド「MonthOfYear」の単位は「Months」です。 TemporalField.getRangeUnit()も参照してください。

      定義:
      インタフェースTemporalFieldgetBaseUnit
      戻り値:
      フィールドのベース単位を定義する単位、null以外
    • getRangeUnit

      public TemporalUnit getRangeUnit()
      次のインタフェースからコピーされた説明: TemporalField
      フィールドの範囲を取得します。

      フィールドの範囲は、フィールドがその範囲内で変化する期間です。 たとえば、フィールド「MonthOfYear」の範囲は「Years」です。 TemporalField.getBaseUnit()も参照してください。

      範囲がnullになることはありません。 たとえば、「Year」フィールドは「YearOfForever」の短縮形です。 したがって、その単位は「Years」で、範囲は「Forever」です。

      定義:
      インタフェースTemporalFieldgetRangeUnit
      戻り値:
      フィールドの範囲を定義する単位、null以外
    • range

      public ValueRange range()
      フィールドの有効値の範囲を取得します。

      すべてのフィールドはlong整数で表現できます。 このメソッドは、その値の有効範囲を記述するオブジェクトを返します。

      このメソッドは、ISO-8601暦体系のフィールドの範囲を返します。 この範囲は他の暦体系では正しくない可能性があります。 別の暦体系の正しい範囲にアクセスするには、Chronology.range(ChronoField)を使用してください。

      結果は有効な最小値と最大値を記述しているだけなので、それらを深く解釈しすぎないことが重要です。 たとえば、範囲内の値であっても、フィールドに対して無効な場合があります。

      定義:
      インタフェースTemporalFieldrange
      戻り値:
      フィールドの有効値の範囲。null以外
    • isDateBased

      public boolean isDateBased()
      このフィールドが日付のコンポーネントを表しているかどうかを確認します。

      曜日から紀元までのフィールドは日付ベースです。

      定義:
      インタフェースTemporalFieldisDateBased
      戻り値:
      これが日付のコンポーネントである場合はtrue
    • isTimeBased

      public boolean isTimeBased()
      このフィールドが時間のコンポーネントを表しているかどうかを確認します。

      「1秒のうちのナノ秒」から「1日の午前または午後」までのフィールドは時間ベースです。

      定義:
      インタフェースTemporalFieldisTimeBased
      戻り値:
      これが時間のコンポーネントである場合はtrue
    • checkValidValue

      public long checkValidValue(long value)
      指定された値がこのフィールドに対して有効であることを確認します。

      これは、range()によって返された有効値の外側の範囲に値が入っていることを検証します。

      このメソッドは、ISO-8601暦体系のフィールドの範囲に照らしてチェックします。 この範囲は他の暦体系では正しくない可能性があります。 別の暦体系の正しい範囲にアクセスするには、Chronology.range(ChronoField)を使用してください。

      パラメータ:
      value - チェックする値
      戻り値:
      渡された値
    • checkValidIntValue

      public int checkValidIntValue(long value)
      指定された値が有効で、intに収まることを確認します。

      これは、range()によって返された有効値の外側の範囲に値が入っていることを検証します。 すべての有効値がintの境界に収まることも確認します。

      このメソッドは、ISO-8601暦体系のフィールドの範囲に照らしてチェックします。 この範囲は他の暦体系では正しくない可能性があります。 別の暦体系の正しい範囲にアクセスするには、Chronology.range(ChronoField)を使用してください。

      パラメータ:
      value - チェックする値
      戻り値:
      渡された値
    • isSupportedBy

      public boolean isSupportedBy(TemporalAccessor temporal)
      次のインタフェースからコピーされた説明: TemporalField
      このフィールドが時間的オブジェクトでサポートされているかどうかを確認します。

      これは、時間的オブジェクトのアクセサがこのフィールドをサポートしているかどうかを判定します。 これがfalseを返す場合、このフィールドについて時間的オブジェクトに問い合せることはできません。

      このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを直接呼び出すことです。 2つ目はTemporalAccessor.isSupported(TemporalField)を使用することです。

         // these two lines are equivalent, but the second approach is recommended
         temporal = thisField.isSupportedBy(temporal);
         temporal = temporal.isSupported(thisField);
       
      2つ目の方法isSupported(TemporalField)の方がコードを読むときにわかりやすいため、これを使用することをお薦めします。

      実装では、サポートされているかどうかを判定するために、ChronoFieldで使用可能なフィールドを使用するようにしてください。

      定義:
      インタフェースTemporalFieldisSupportedBy
      パラメータ:
      temporal - 問い合せる時間的オブジェクト。null以外
      戻り値:
      このフィールドについて日付/時間に問合せできる場合はtrue、そうでない場合はfalse
    • rangeRefinedBy

      public ValueRange rangeRefinedBy(TemporalAccessor temporal)
      次のインタフェースからコピーされた説明: TemporalField
      時間的オブジェクトを使用して結果を絞り込むことにより、このフィールドの有効値の範囲を取得します。

      これは時間的オブジェクトを使用してフィールドの有効値の範囲を見つけます。 これはTemporalField.range()に似ていますが、このメソッドは時間的オブジェクトを使用して結果を絞り込みます。 たとえば、フィールドがDAY_OF_MONTHの場合、月の長さには28、29、30および31日の4つの可能性があるため、rangeメソッドは正確ではありません。 このメソッドを日付に使用すると、範囲は正確になり、これら4つのオプションのうち1つだけが返されます。

      このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを直接呼び出すことです。 2つ目はTemporalAccessor.range(TemporalField)を使用することです。

         // these two lines are equivalent, but the second approach is recommended
         temporal = thisField.rangeRefinedBy(temporal);
         temporal = temporal.range(thisField);
       
      2つ目の方法range(TemporalField)の方がコードを読むときにわかりやすいため、これを使用することをお薦めします。

      実装では、問合せや計算を実行する場合、ChronoFieldで使用可能なフィールドを使用するようにしてください。 フィールドがサポートされていない場合は、UnsupportedTemporalTypeExceptionをスローする必要があります。

      定義:
      インタフェースTemporalFieldrangeRefinedBy
      パラメータ:
      temporal - 結果を絞り込むために使用される時間的オブジェクト。null以外
      戻り値:
      このフィールドの有効値の範囲。null以外
    • getFrom

      public long getFrom(TemporalAccessor temporal)
      次のインタフェースからコピーされた説明: TemporalField
      指定された時間的オブジェクトからこのフィールドの値を取得します。

      これは、このフィールドの値について時間的オブジェクトに問い合せます。

      このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを直接呼び出すことです。 2つ目はTemporalAccessor.getLong(TemporalField) (またはTemporalAccessor.get(TemporalField))を使用することです。

         // these two lines are equivalent, but the second approach is recommended
         temporal = thisField.getFrom(temporal);
         temporal = temporal.getLong(thisField);
       
      2つ目の方法getLong(TemporalField)の方がコードを読むときにわかりやすいため、これを使用することをお薦めします。

      実装では、問合せや計算を実行する場合、ChronoFieldで使用可能なフィールドを使用するようにしてください。 フィールドがサポートされていない場合は、UnsupportedTemporalTypeExceptionをスローする必要があります。

      定義:
      インタフェースTemporalFieldgetFrom
      パラメータ:
      temporal - 問い合せる時間的オブジェクト。null以外
      戻り値:
      このフィールドの値。null以外
    • adjustInto

      public <R extends Temporal> R adjustInto(R temporal, long newValue)
      次のインタフェースからコピーされた説明: TemporalField
      このフィールドの値が設定された、指定された時間的オブジェクトのコピーを返します。

      これは、指定された時間的オブジェクトに基づく、このフィールドの値が変更された新しい時間的オブジェクトを返します。 たとえば、LocalDateで、これは年、月、または「月の日」を設定するために使用できます。 返されるオブジェクトは、指定されたオブジェクトと同じ識別可能な型を持ちます。

      フィールドの変更が完全には定義されていない場合もあります。 たとえば、ターゲット・オブジェクトが1月31日を表す日付である場合、月を2月に変更することは不明な場合があります。 このようなケースでは、実装が結果の解決を担当します。 通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。

      このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを直接呼び出すことです。 2つ目はTemporal.with(TemporalField, long)を使用することです。

         // these two lines are equivalent, but the second approach is recommended
         temporal = thisField.adjustInto(temporal);
         temporal = temporal.with(thisField);
       
      2つ目の方法with(TemporalField)の方がコードを読むときにわかりやすいため、これを使用することをお薦めします。

      実装では、問合せや計算を実行する場合、ChronoFieldで使用可能なフィールドを使用するようにしてください。 フィールドがサポートされていない場合は、UnsupportedTemporalTypeExceptionをスローする必要があります。

      実装では、指定された時間的オブジェクトを変更してはいけません。 かわりに、元のオブジェクトの調整済のコピーを返す必要があります。 これは、不変および可変の実装に安全で等価な動作を提供します。

      定義:
      インタフェースTemporalFieldadjustInto
      型パラメータ:
      R - Temporalオブジェクトの型
      パラメータ:
      temporal - 調整する時間的オブジェクト。null以外
      newValue - フィールドの新しい値
      戻り値:
      調整された時間的オブジェクト。null以外
    • toString

      public String toString()
      次のクラスからコピーされた説明: Enum
      宣言に含まれるとおりのenum定数の名前を返します。 このメソッドは不要な場合や不適切な場合にオーバーライドできます。 列挙型クラスは、より多くの"programmer-friendly"文字列形式が存在する場合、このメソッドをオーバーライドする必要があります。
      定義:
      インタフェースTemporalFieldtoString
      オーバーライド:
      クラスEnum<ChronoField>toString
      戻り値:
      このenum定数の名前