AbstractChronology.ResolveDate Methode

Definition

Löst analysierte ChronoField Werte während der Analyse in ein Datum auf.

[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

Parameter

fieldValues
IDictionary<ITemporalField,Long>

Die Zuordnung von Feldern zu Werten, die aktualisiert werden können, nicht NULL

resolverStyle
ResolverStyle

der angeforderte Auflösungstyp, nicht NULL

Gibt zurück

das aufgelöste Datum, null, wenn nicht genügend Informationen zum Erstellen eines Datums vorhanden sind

Implementiert

Attribute

Hinweise

Löst analysierte ChronoField Werte während der Analyse in ein Datum auf.

Die meisten TemporalField Implementierungen werden mithilfe der Resolve-Methode für das Feld aufgelöst. Im Gegensatz dazu definiert die ChronoField Klasse Felder, die nur relativ zur Chronologie eine Bedeutung haben. ChronoField Daher werden Datumsfelder hier im Kontext einer bestimmten Chronologie aufgelöst.

ChronoField Instanzen werden durch diese Methode aufgelöst, die in Unterklassen überschrieben werden kann. <ul><li>EPOCH_DAY - Wenn vorhanden, wird dies in ein Datum konvertiert, und alle anderen Datumsfelder werden dann mit dem Datum kreuzgecheckt. <li>PROLEPTIC_MONTH - Wenn vorhanden, dann wird es in die YEAR und MONTH_OF_YEAR. Wenn der Modus streng oder smart ist, wird das Feld überprüft. <li>YEAR_OF_ERA und ERA - Wenn beide vorhanden sind, werden sie kombiniert, um ein YEAR. Im lenient-Modus wird der YEAR_OF_ERA Bereich nicht überprüft, im intelligenten und strengen Modus ist er. Der ERA Bereich wird in allen drei Modi überprüft. Wenn nur der YEAR_OF_ERA Ist vorhanden ist und der Modus intelligent oder lenient ist, wird die letzte verfügbare Ära angenommen. Im strikten Modus wird keine Ära angenommen und die YEAR_OF_ERA bleibt unberührt. Wenn nur das ERA vorhanden ist, bleibt es unberührt. <li>YEAR, MONTH_OF_YEAR und DAY_OF_MONTH - Wenn alle drei vorhanden sind, werden sie kombiniert, um ein Datum zu bilden. In allen drei Modi wird die YEAR Überprüfung erfolgt. Wenn der Modus smart oder streng ist, werden Monat und Tag überprüft. Wenn der Modus lenient ist, wird das Datum in einer Weise kombiniert, die dem Erstellen eines Datums am ersten Tag des ersten Monats im angeforderten Jahr entspricht, und dann die Differenz in Monaten und dann die Differenz in Tagen. Wenn der Modus smart ist und der Tag des Monats größer als das Maximum für den Jahresmonat ist, wird der Tag des Monats an den letzten Tag des Monats angepasst. Wenn der Modus streng ist, müssen die drei Felder ein gültiges Datum bilden. <li>YEAR und DAY_OF_YEAR - Wenn beide vorhanden sind, werden sie kombiniert, um ein Datum zu bilden. In allen drei Modi wird die YEAR Überprüfung erfolgt. Wenn der Modus lenient ist, wird das Datum in einer Weise kombiniert, die dem Erstellen eines Datums am ersten Tag des angeforderten Jahres entspricht, und dann die Differenz in Tagen hinzufügen. Wenn der Modus smart oder streng ist, müssen die beiden Felder ein gültiges Datum bilden. <li>YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH und ALIGNED_DAY_OF_WEEK_IN_MONTH - Wenn alle vier vorhanden sind, werden sie kombiniert, um ein Datum zu bilden. In allen drei Modi wird die YEAR Überprüfung erfolgt. Wenn der Modus lenient ist, wird das Datum in einer Weise kombiniert, die dem Erstellen eines Datums am ersten Tag des ersten Monats im angeforderten Jahr entspricht, und dann die Differenz in Monaten, dann die Differenz in Wochen und dann in Tagen. Wenn der Modus smart oder streng ist, werden alle vier Felder auf ihre äußeren Bereiche überprüft. Das Datum wird dann in einer Weise kombiniert, die dem Erstellen eines Datums am ersten Tag des angeforderten Jahres und Monats entspricht und dann den Betrag in Wochen und Tagen hinzufügt, um ihre Werte zu erreichen. Wenn der Modus streng ist, wird das Datum zusätzlich überprüft, um zu überprüfen, ob die Tages- und Wochenanpassung den Monat nicht geändert hat. <li>YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH und DAY_OF_WEEK - Wenn alle vier vorhanden sind, werden sie kombiniert, um ein Datum zu bilden. Der Ansatz ist identisch mit den oben beschriebenen Jahren, Monaten und Wochen in ALIGNED_DAY_OF_WEEK_IN_MONTH. Der Wochentag wird als nächster oder der gleiche übereinstimmende Wochentag angepasst, sobald die Jahre, Monate und Wochen behandelt wurden. <li>YEAR, ALIGNED_WEEK_OF_YEAR und ALIGNED_DAY_OF_WEEK_IN_YEAR - Wenn alle drei vorhanden sind, werden sie kombiniert, um ein Datum zu bilden. In allen drei Modi wird die YEAR Überprüfung erfolgt. Wenn der Modus lenient ist, wird das Datum in einer Weise kombiniert, die dem Erstellen eines Datums am ersten Tag des angeforderten Jahres entspricht, und dann die Differenz in Wochen und dann in Tagen. Wenn der Modus smart oder streng ist, werden alle drei Felder auf ihre äußeren Bereiche überprüft. Das Datum wird dann in einer Weise kombiniert, die dem Erstellen eines Datums am ersten Tag des angeforderten Jahres entspricht, und dann den Betrag in Wochen und Tagen addiert, um ihre Werte zu erreichen. Wenn der Modus streng ist, wird das Datum zusätzlich überprüft, um zu überprüfen, ob die Tages- und Wochenanpassung das Jahr nicht geändert hat. <li>YEAR, ALIGNED_WEEK_OF_YEAR und DAY_OF_WEEK - Wenn alle drei vorhanden sind, werden sie kombiniert, um ein Datum zu bilden. Der Ansatz ist identisch mit den oben beschriebenen Jahren und Wochen in ALIGNED_DAY_OF_WEEK_IN_YEAR. Der Wochentag wird als nächster oder der gleiche übereinstimmende Wochentag angepasst, sobald die Jahre und Wochen behandelt wurden. </ul>

Die Standardimplementierung eignet sich für die meisten Kalendersysteme. Wenn java.time.temporal.ChronoField#YEAR_OF_ERA ohne dies java.time.temporal.ChronoField#ERA gefunden wird, wird die letzte Ära #eras() verwendet. Bei der Implementierung wird davon ausgegangen, dass der erste Tag des Monats den Wert 1 hat, dass der erste Tag des Jahres den Wert 1 hat und dass der erste Monat und das Jahr immer vorhanden sind.

Java Dokumentation für java.time.chrono.AbstractChronology.resolveDate(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.format.ResolverStyle).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: