- すべての実装されたインタフェース:
Serializable
,Comparable<ChronoField>
,Constable
,TemporalField
このフィールド・セットは、日付、時間、または日付/時間を操作するためのフィールド・ベースのアクセスを提供します。 標準のフィールド・セットは、TemporalField
を実装することによって拡張できます。
これらのフィールドは、複数の暦体系に適用できると想定されています。 たとえば、ISO以外の暦体系の多くは、ルールは多少異なっても、日付を年、月、および日で定義しています。 各フィールドのドキュメントには、そのフィールドの動作が説明されています。
- 実装要件:
- これは不変でスレッドセーフな最終の列挙型です。
- 導入されたバージョン:
- 1.8
-
ネストされたクラスのサマリー
クラスjava.lang.Enumで宣言されたネストされたクラス/インタフェース
Enum.EnumDesc<E extends Enum<E>>
-
列挙型定数のサマリー
列挙型定数説明月のうちの位置合せされた曜日。年のうちの位置合せされた曜日。月のうちの位置合せされた週番号。年のうちの位置合せされた週番号。1日の午前または午後。午前または午後のクロック時間。1日のうちのクロック時間。月の日。火曜日などの曜日。年の日。Javaエポック1970-01-01 (ISO)を基準とするエポック日。紀元。午前または午後の時。時。インスタントのエポック秒。1日のうちのマイクロ秒。1秒のうちのマイクロ秒。1日のうちのミリ秒。1秒のうちのミリ秒。1日のうちの分。分。3月などの月。1日のうちのナノ秒。1秒のうちのナノ秒。UTC/グリニッジからのオフセット。先発暦の月(年0から順に月をカウント)。1日のうちの秒。秒。2012などの先発暦の年。紀元のうちの年。 -
メソッドのサマリー
修飾子と型メソッド説明<R extends Temporal>
RadjustInto
(R temporal, long newValue) このフィールドの値が設定された、指定された時間的オブジェクトのコピーを返します。int
checkValidIntValue
(long value) 指定された値が有効で、int
に収まることを確認します。long
checkValidValue
(long value) 指定された値がこのフィールドに対して有効であることを確認します。フィールドの測定単位を取得します。long
getFrom
(TemporalAccessor temporal) 指定された時間的オブジェクトからこのフィールドの値を取得します。フィールドの範囲を取得します。boolean
このフィールドが日付のコンポーネントを表しているかどうかを確認します。boolean
isSupportedBy
(TemporalAccessor temporal) このフィールドが時間的オブジェクトでサポートされているかどうかを確認します。boolean
このフィールドが時間のコンポーネントを表しているかどうかを確認します。range()
フィールドの有効値の範囲を取得します。rangeRefinedBy
(TemporalAccessor temporal) 時間的オブジェクトを使用して結果を絞り込むことにより、このフィールドの有効値の範囲を取得します。toString()
宣言に含まれるとおりのenum定数の名前を返します。static ChronoField
指定された名前を持つこのクラスのenum定数を返します。static ChronoField[]
values()
この列挙クラスの定数を含む配列を宣言されている順序で 返します。クラス java.lang.Enumで宣言されたメソッド
clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
インタフェース java.time.temporal.TemporalFieldで宣言されたメソッド
getDisplayName, resolve
-
列挙型定数の詳細
-
NANO_OF_SECOND
public static final ChronoField NANO_OF_SECOND1秒のうちのナノ秒。これは1秒のうちのナノ秒を0から999,999,999の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。
このフィールドは「1秒のうちのナノ秒」を表すために使用され、秒の小数部を扱います。
TemporalAccessor
の実装では、SECOND_OF_MINUTE
、SECOND_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_DAY1日のうちのナノ秒。これは1日のうちのナノ秒を0から(24 * 60 * 60 * 1,000,000,000) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。
このフィールドは「1日のうちのナノ秒」を表すために使用され、秒の小数部を扱います。
TemporalAccessor
の実装では、SECOND_OF_DAY
の値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値が
NANO_OF_SECOND
、SECOND_OF_MINUTE
、MINUTE_OF_HOUR
、およびHOUR_OF_DAY
フィールドに分割されます。 -
MICRO_OF_SECOND
public static final ChronoField MICRO_OF_SECOND1秒のうちのマイクロ秒。これは1秒のうちのマイクロ秒を0から999,999の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。
このフィールドは「1秒のうちのマイクロ秒」を表すために使用され、秒の小数部を扱います。
TemporalAccessor
の実装では、SECOND_OF_MINUTE
、SECOND_OF_DAY
、またはINSTANT_SECONDS
の値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。このフィールドを使用して値を設定するときは、1,000を掛けた値で
NANO_OF_SECOND
を設定する場合と同じ方法で設定してください。このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 フィールドが
MILLI_OF_SECOND
との組合せで解決されて、NANO_OF_SECOND
が生成されます。 -
MICRO_OF_DAY
public static final ChronoField MICRO_OF_DAY1日のうちのマイクロ秒。これは1日のうちのマイクロ秒を0から(24 * 60 * 60 * 1,000,000) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。
このフィールドは「1日のうちのマイクロ秒」を表すために使用され、秒の小数部を扱います。
TemporalAccessor
の実装では、SECOND_OF_DAY
の値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。このフィールドを使用して値を設定するときは、1,000を掛けた値で
NANO_OF_DAY
を設定する場合と同じ方法で設定してください。このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値が
MICRO_OF_SECOND
、SECOND_OF_MINUTE
、MINUTE_OF_HOUR
、およびHOUR_OF_DAY
フィールドに分割されます。 -
MILLI_OF_SECOND
public static final ChronoField MILLI_OF_SECOND1秒のうちのミリ秒。これは1秒のうちのミリ秒を0から999の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。
このフィールドは「1秒のうちのミリ秒」を表すために使用され、秒の小数部を扱います。
TemporalAccessor
の実装では、SECOND_OF_MINUTE
、SECOND_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_DAY1日のうちのミリ秒。これは1日のうちのミリ秒を0から(24 * 60 * 60 * 1,000) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。
このフィールドは「1日のうちのミリ秒」を表すために使用され、秒の小数部を扱います。
TemporalAccessor
の実装では、SECOND_OF_DAY
の値を返すことができる場合、このフィールドに値を与えるようにしてください。不明な精度にはゼロを挿入します。このフィールドを使用して値を設定するときは、1,000,000を掛けた値で
NANO_OF_DAY
を設定する場合と同じ方法で設定してください。このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値が
MILLI_OF_SECOND
、SECOND_OF_MINUTE
、MINUTE_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_DAY1日のうちの秒。これは1日のうちの秒を0から(24 * 60 * 60) - 1の範囲でカウントします。 このフィールドはすべての暦体系で同じ意味を持ちます。
このフィールドは解析時には次のように動作します。厳密およびスマート・モードでは値が検証されますが、非厳密モードでは検証されません。 値が
SECOND_OF_MINUTE
、MINUTE_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_DAY1日のうちの分。これは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_HOUR
、SECOND_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_DAY1日のうちのクロック時間。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_DAY1日の午前または午後。これは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_DAYJavaエポック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_YEAR3月などの月。これは年のうちの月の概念を表します。 デフォルトの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つの概念に基づいています。 これらは、
YEAR
、MONTH_OF_YEAR
およびDAY_OF_MONTH
フィールドにマップされます。 紀元には言及されていないことに注意してください。 日付を表す完全なモデルには、紀元、年、月および日という4つの概念が必要です。 これらは、ERA
、YEAR_OF_ERA
、MONTH_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 YEAR2012などの先発暦の年。これは、負の数を使用して順にカウントした年の概念を表します。 先発暦の年は、紀元を基に解釈されることはありません。 先発暦の年から紀元年へのマッピングを示す例については、
YEAR_OF_ERA
を参照してください。日付を表す標準のメンタル・モデルは、年、月および日という3つの概念に基づいています。 これらは、
YEAR
、MONTH_OF_YEAR
およびDAY_OF_MONTH
フィールドにマップされます。 紀元には言及されていないことに注意してください。 日付を表す完全なモデルには、紀元、年、月および日という4つの概念が必要です。 これらは、ERA
、YEAR_OF_ERA
、MONTH_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_SECONDSUTC/グリニッジからのオフセット。これは、UTC/グリニッジからのローカル時間のオフセット(秒数)の概念を表します。
ZoneOffset
は、ローカル時間とUTC/グリニッジの時間差を表します。 これは通常、時と分からなる固定の数値です。 オフセットの合計
の秒数と等価です。 たとえば、冬の間、パリのオフセットは+01:00
で、これは3600秒です。このフィールドは、すべての暦体系で同じ意味を持つように厳密に定義されます。 これは暦間での相互運用を保証するために必要です。
-
-
メソッドの詳細
-
values
public static ChronoField[] values()この列挙クラスの定数を含む配列を宣言されている順序で 返します。- 戻り値:
- この列挙クラスの定数を宣言されている順序で含む配列
-
valueOf
public static ChronoField valueOf(String name) 指定された名前を持つこのクラスのenum定数を返します。 文字列は、このクラスでenum定数を宣言するために使用される識別子と正確に一致する必要があります。 (不適切な空白文字は許可されません。)- パラメータ:
name
- 返される列挙型定数の名前。- 戻り値:
- 指定された名前を持つ列挙型定数
- 例外:
IllegalArgumentException
- この列挙型クラスに指定された名前の定数がない場合NullPointerException
- 引数がnullの場合
-
getBaseUnit
public TemporalUnit getBaseUnit()次のインタフェースからコピーされた説明:TemporalField
フィールドの測定単位を取得します。フィールドの単位は、範囲内で変化する期間です。 たとえば、フィールド「MonthOfYear」の単位は「Months」です。
TemporalField.getRangeUnit()
も参照してください。- 定義:
- インタフェース
TemporalField
のgetBaseUnit
- 戻り値:
- フィールドのベース単位を定義する単位、null以外
-
getRangeUnit
public TemporalUnit getRangeUnit()次のインタフェースからコピーされた説明:TemporalField
フィールドの範囲を取得します。フィールドの範囲は、フィールドがその範囲内で変化する期間です。 たとえば、フィールド「MonthOfYear」の範囲は「Years」です。
TemporalField.getBaseUnit()
も参照してください。範囲がnullになることはありません。 たとえば、「Year」フィールドは「YearOfForever」の短縮形です。 したがって、その単位は「Years」で、範囲は「Forever」です。
- 定義:
- インタフェース
TemporalField
のgetRangeUnit
- 戻り値:
- フィールドの範囲を定義する単位、null以外
-
range
public ValueRange range()フィールドの有効値の範囲を取得します。すべてのフィールドは
long
整数で表現できます。 このメソッドは、その値の有効範囲を記述するオブジェクトを返します。このメソッドは、ISO-8601暦体系のフィールドの範囲を返します。 この範囲は他の暦体系では正しくない可能性があります。 別の暦体系の正しい範囲にアクセスするには、
Chronology.range(ChronoField)
を使用してください。結果は有効な最小値と最大値を記述しているだけなので、それらを深く解釈しすぎないことが重要です。 たとえば、範囲内の値であっても、フィールドに対して無効な場合があります。
- 定義:
- インタフェース
TemporalField
のrange
- 戻り値:
- フィールドの有効値の範囲。null以外
-
isDateBased
public boolean isDateBased()このフィールドが日付のコンポーネントを表しているかどうかを確認します。曜日から紀元までのフィールドは日付ベースです。
- 定義:
- インタフェース
TemporalField
のisDateBased
- 戻り値:
- これが日付のコンポーネントである場合はtrue
-
isTimeBased
public boolean isTimeBased()このフィールドが時間のコンポーネントを表しているかどうかを確認します。「1秒のうちのナノ秒」から「1日の午前または午後」までのフィールドは時間ベースです。
- 定義:
- インタフェース
TemporalField
のisTimeBased
- 戻り値:
- これが時間のコンポーネントである場合は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
で使用可能なフィールドを使用するようにしてください。- 定義:
- インタフェース
TemporalField
のisSupportedBy
- パラメータ:
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
をスローする必要があります。- 定義:
- インタフェース
TemporalField
のrangeRefinedBy
- パラメータ:
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
をスローする必要があります。- 定義:
- インタフェース
TemporalField
のgetFrom
- パラメータ:
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
をスローする必要があります。実装では、指定された時間的オブジェクトを変更してはいけません。 かわりに、元のオブジェクトの調整済のコピーを返す必要があります。 これは、不変および可変の実装に安全で等価な動作を提供します。
- 定義:
- インタフェース
TemporalField
のadjustInto
- 型パラメータ:
R
- Temporalオブジェクトの型- パラメータ:
temporal
- 調整する時間的オブジェクト。null以外newValue
- フィールドの新しい値- 戻り値:
- 調整された時間的オブジェクト。null以外
-
toString
public String toString()次のクラスからコピーされた説明:Enum
宣言に含まれるとおりのenum定数の名前を返します。 このメソッドは不要な場合や不適切な場合にオーバーライドできます。 列挙型クラスは、より多くの"programmer-friendly"文字列形式が存在する場合、このメソッドをオーバーライドする必要があります。- 定義:
- インタフェース
TemporalField
のtoString
- オーバーライド:
- クラス
Enum<ChronoField>
のtoString
- 戻り値:
- このenum定数の名前
-