Language

AbstractChronology.ResolveDate メソッド

定義

解析中に解析された ChronoField 値を日付に解決します。

[Android.Runtime.Register("resolveDate", "(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;", "GetResolveDate_Ljava_util_Map_Ljava_time_format_ResolverStyle_Handler", ApiSince=26)]
public virtual Java.Time.Chrono.IChronoLocalDate? ResolveDate(System.Collections.Generic.IDictionary<Java.Time.Temporal.ITemporalField,Java.Lang.Long>? fieldValues, Java.Time.Format.ResolverStyle? resolverStyle);
[<Android.Runtime.Register("resolveDate", "(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;", "GetResolveDate_Ljava_util_Map_Ljava_time_format_ResolverStyle_Handler", ApiSince=26)>]
abstract member ResolveDate : System.Collections.Generic.IDictionary<Java.Time.Temporal.ITemporalField, Java.Lang.Long> * Java.Time.Format.ResolverStyle -> Java.Time.Chrono.IChronoLocalDate
override this.ResolveDate : System.Collections.Generic.IDictionary<Java.Time.Temporal.ITemporalField, Java.Lang.Long> * Java.Time.Format.ResolverStyle -> Java.Time.Chrono.IChronoLocalDate

パラメーター

fieldValues
IDictionary<ITemporalField,Long>

フィールドの値へのマップ (null ではなく更新可能)

resolverStyle
ResolverStyle

null ではなく、要求された解決の型

返品

解決日、日付を作成するための情報が不十分な場合は null

実装

属性

注釈

解析中に解析された ChronoField 値を日付に解決します。

ほとんどの TemporalField 実装は、フィールドの resolve メソッドを使用して解決されます。 これに対し、 ChronoField クラスは、時系列に対してのみ意味を持つフィールドを定義します。 そのため、 ChronoField 日付フィールドは、特定の時系列のコンテキストでここで解決されます。

ChronoField インスタンスは、サブクラスでオーバーライドされる可能性があるこのメソッドによって解決されます。 <ul><li>EPOCH_DAY - 存在する場合は、日付に変換され、その他のすべての日付フィールドが日付に対してクロスチェックされます。 <li>PROLEPTIC_MONTH - 存在する場合は、 YEAR に分割され、 MONTH_OF_YEAR。 モードが厳密またはスマートの場合は、フィールドが検証されます。 <li>YEAR_OF_ERA と ERA - 両方が存在する場合は、それらが組み合わされて YEARが形成されます。 lenient モードでは、 YEAR_OF_ERA 範囲は検証されず、スマート モードと厳密モードでは検証されません。 ERAは、3 つのモードすべてで範囲を検証します。 YEAR_OF_ERAのみが存在し、モードがスマートまたは寛大な場合は、最後に使用可能な時代 (年号) が想定されます。 厳密モードでは、時代 (年号) は想定されておらず、 YEAR_OF_ERA はそのまま残されます。 ERAのみが存在する場合は、そのまま残ります。 <li>YEAR、 MONTH_OF_YEAR 、 DAY_OF_MONTH - 3 つすべてが存在する場合は、それらが結合されて日付が形成されます。 3 つのモードすべてで、 YEAR が検証されます。 モードがスマートまたは厳密な場合は、月と日が検証されます。 モードが緩い場合、日付は、要求された年の最初の月の最初の日に日付を作成し、月の差を追加してから、日の差を追加するのと同じ方法で結合されます。 モードがスマートで、月の日が年月の最大値より大きい場合、月の日は最後の月の日に調整されます。 モードが厳密な場合、3 つのフィールドは有効な日付を形成する必要があります。 <li>YEAR と DAY_OF_YEAR - 両方が存在する場合は、日付を形成するために結合されます。 3 つのモードすべてで、 YEAR が検証されます。 モードが緩い場合、日付は、要求された年の最初の日に日付を作成し、日の差を追加するのと同じ方法で結合されます。 モードがスマートまたは厳密の場合、2 つのフィールドは有効な日付を形成する必要があります。 <li>YEAR、 MONTH_OF_YEAR、 ALIGNED_WEEK_OF_MONTH 、 ALIGNED_DAY_OF_WEEK_IN_MONTH - 4 つすべてが存在する場合は、それらが結合されて日付が形成されます。 3 つのモードすべてで、 YEAR が検証されます。 モードが緩い場合、日付は、要求された年の最初の月の最初の日に日付を作成し、月の差、週の差、日単位の差を追加するのと同じ方法で結合されます。 モードがスマートまたは厳密の場合、4 つのフィールドすべてが外側の範囲に対して検証されます。 その後、日付は、要求された年と月の最初の日に日付を作成し、その値に達するために週と日の量を加算するのと同じ方法で結合されます。 モードが厳密な場合は、日付が追加で検証され、日と週の調整によって月が変更されていないことが確認されます。 <li>YEAR、 MONTH_OF_YEAR、 ALIGNED_WEEK_OF_MONTH 、 DAY_OF_WEEK - 4 つすべてが存在する場合は、それらが結合されて日付が形成されます。 このアプローチは、 ALIGNED_DAY_OF_WEEK_IN_MONTHの年、月、週について上記と同じです。 曜日は、年、月、週が処理されると、次の曜日または同じ曜日として調整されます。 <li>YEAR、 ALIGNED_WEEK_OF_YEAR 、 ALIGNED_DAY_OF_WEEK_IN_YEAR - 3 つすべてが存在する場合は、それらが結合されて日付が形成されます。 3 つのモードすべてで、 YEAR が検証されます。 モードが緩い場合、日付は、要求された年の最初の日に日付を作成し、週単位で、次に日単位で差を追加するのと同じ方法で結合されます。 モードがスマートまたは厳密の場合、3 つのフィールドすべてが外側の範囲に対して検証されます。 その後、日付は、要求された年の最初の日に日付を作成し、その値に到達するために週と日の量を加算するのと同じ方法で結合されます。 モードが厳密な場合は、日付が追加で検証され、日と週の調整によって年が変更されていないことが確認されます。 <li>YEAR、 ALIGNED_WEEK_OF_YEAR 、 DAY_OF_WEEK - 3 つすべてが存在する場合は、それらが結合されて日付が形成されます。 このアプローチは、 ALIGNED_DAY_OF_WEEK_IN_YEARの年と週について上記と同じです。 曜日は、年と週が処理されると、次の曜日または同じ曜日として調整されます。 </ul>

既定の実装は、ほとんどのカレンダー システムに適しています。 java.time.temporal.ChronoField#ERAなしでjava.time.temporal.ChronoField#YEAR_OF_ERAが見つかった場合は、#eras()の最後の時代 (年号) が使用されます。 この実装では、7 日の週を想定し、最初の曜日の値は 1、最初の日の値は 1、月と年の最初の日は常に存在することを前提としています。

Javaドキュメント。

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

適用対象