DateTimeFormatter.WithResolverFields メソッド

定義

オーバーロード

WithResolverFields(ITemporalField[])
WithResolverFields(ICollection<ITemporalField>)

リゾルバー フィールドの新しいセットを含むこのフォーマッタのコピーを返します。

WithResolverFields(ITemporalField[])

[Android.Runtime.Register("withResolverFields", "([Ljava/time/temporal/TemporalField;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)]
public Java.Time.Format.DateTimeFormatter? WithResolverFields (params Java.Time.Temporal.ITemporalField[]? resolverFields);
[<Android.Runtime.Register("withResolverFields", "([Ljava/time/temporal/TemporalField;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)>]
member this.WithResolverFields : Java.Time.Temporal.ITemporalField[] -> Java.Time.Format.DateTimeFormatter

パラメーター

resolverFields
ITemporalField[]

戻り値

属性

適用対象

WithResolverFields(ICollection<ITemporalField>)

リゾルバー フィールドの新しいセットを含むこのフォーマッタのコピーを返します。

[Android.Runtime.Register("withResolverFields", "(Ljava/util/Set;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)]
public Java.Time.Format.DateTimeFormatter? WithResolverFields (System.Collections.Generic.ICollection<Java.Time.Temporal.ITemporalField>? resolverFields);
[<Android.Runtime.Register("withResolverFields", "(Ljava/util/Set;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)>]
member this.WithResolverFields : System.Collections.Generic.ICollection<Java.Time.Temporal.ITemporalField> -> Java.Time.Format.DateTimeFormatter

パラメーター

resolverFields
ICollection<ITemporalField>

リゾルバー フィールドの新しいセット。フィールドがない場合は null

戻り値

要求されたリゾルバー スタイルを持つこのフォーマッタに基づくフォーマッタ 。null ではありません

属性

注釈

リゾルバー フィールドの新しいセットを含むこのフォーマッタのコピーを返します。

これにより、このフォーマッタと同様の状態のフォーマッタが返されますが、リゾルバー フィールドが設定されます。 既定では、フォーマッタにはリゾルバー フィールドはありません。

リゾルバー フィールドの変更は、解析中にのみ有効です。 テキスト文字列の解析は、2 つのフェーズで行われます。 フェーズ 1 は、ビルダーに追加されたフィールドに従った基本的なテキスト解析です。 フェーズ 2 では、解析されたフィールドと値のペアを日付オブジェクトまたは時刻オブジェクトに解決します。 リゾルバー フィールドは、フェーズ 1 とフェーズ 2 の間のフィールドと値のペアをフィルター処理するために使用されます。

これは、日付または時刻を解決する 2 つ以上の方法を選択するために使用できます。 たとえば、フォーマッタが year、month、day-of-month、day-of-year で構成されている場合、日付を解決するには 2 つの方法があります。 引数 ChronoField#YEAR YEAR を指定して ChronoField#DAY_OF_YEAR DAY_OF_YEAR このメソッドを呼び出すと、日付が年と年の日を使用して確実に解決されます。つまり、実質的には、解決フェーズ中に月と日が無視されます。

同様の方法で、このメソッドを使用して、クロスチェックされるセカンダリ フィールドを無視できます。 たとえば、フォーマッタが年、月、曜日、曜日で構成されている場合、日付を解決する方法は 1 つだけですが、曜日の解析値は解決された日付に対してクロスチェックされます。 引数 ChronoField#YEAR YEARChronoField#MONTH_OF_YEAR MONTH_OF_YEARChronoField#DAY_OF_MONTH DAY_OF_MONTH を指定してこのメソッドを呼び出すと、日付が正しく解決されますが、曜日のクロスチェックは発生しません。

実装の用語では、このメソッドは次のように動作します。 解析フェーズの結果は、フィールドと値のマップと見なすことができます。 このメソッドの動作は、フェーズ 1 からフェーズ 2 の間でそのマップをフィルター処理し、このメソッドの引数として指定されたフィールド以外のすべてのフィールドを削除することです。

このインスタンスは不変であり、このメソッド呼び出しの影響を受けません。

java.time.format.DateTimeFormatter.withResolverFields(java.util.Set<java.time.temporal.TemporalField>)Java ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象