System.DateTime.TryParse-Methode

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Methode analysiert eine Zeichenfolge, die Datums-, Uhrzeit- und Zeitzoneninformationen enthalten kann. Es ähnelt der DateTime.Parse(String, IFormatProvider, DateTimeStyles) Methode, mit der Ausnahme, dass die DateTime.TryParse(String, DateTime) Methode keine Ausnahme auslöst, wenn die Konvertierung fehlschlägt.

Diese Methode versucht, nicht erkannte Daten zu ignorieren und die Eingabezeichenfolge (s) vollständig zu analysieren. Wenn s eine Uhrzeit, aber kein Datum enthalten ist, ersetzt die Methode standardmäßig das aktuelle Datum oder, wenn styles sie das NoCurrentDateDefault Kennzeichen enthält, ersetzt DateTime.Date.MinValuesie. Wenn s ein Datum, aber keine Uhrzeit enthalten ist, wird Mitternacht um 12:00 Uhr als Standardzeit verwendet. Wenn ein Datum vorhanden ist, aber seine Jahreskomponente nur aus zwei Ziffern besteht, wird sie basierend auf dem Wert der Calendar.TwoDigitYearMax Eigenschaft in ein Jahr im aktuellen Kalender des provider Parameters konvertiert. Alle führenden, inneren oder nachgestellten Leerzeichen s werden ignoriert. Das Datum und die Uhrzeit können mit einem Paar vorangestellter und nachfolgender ZAHLZEICHEN ('#', U+0023) in Klammern gesetzt werden und kann mit einem oder mehreren NULL-Zeichen (U+0000) nachgestellt werden.

Spezifische gültige Formate für Datums- und Uhrzeitelemente sowie die Namen und Symbole, die in Datums- und Uhrzeitangaben verwendet werden, werden durch den provider Parameter definiert, der eine der folgenden Sein kann:

Wenn providernull ist, wird die aktuelle Kultur verwendet.

Wenn s es sich um die Zeichenfolgendarstellung eines Schalttags in einem Schaltjahr im aktuellen Kalender handelt, analysiert s die Methode erfolgreich. Ist s die Zeichenfolgendarstellung eines Schalttags in einem Nicht-Schaltjahr im aktuellen Kalender des provideraktuellen Kalenders, schlägt der Analysevorgang fehl, und die Methode gibt zurück false.

Der styles Parameter definiert die genaue Interpretation der analysierten Zeichenfolge und die Behandlung des Analysevorgangs. Es kann sich um ein oder mehrere Elemente der DateTimeStyles Enumeration, wie in der folgenden Tabelle beschrieben, sein.

DateTimeStyles-Mitglied Beschreibung
AdjustToUniversal s Analysiert und konvertiert sie bei Bedarf in UTC. Wenn s ein Zeitzonenoffset enthalten ist oder s keine Zeitzoneninformationen enthalten, aber styles das DateTimeStyles.AssumeLocal Flag enthält, analysiert die Methode die Zeichenfolge, Aufrufe ToUniversalTime zum Konvertieren des zurückgegebenen DateTime Werts in UTC und legt die Kind Eigenschaft auf DateTimeKind.Utc. Wenn s angegeben wird, dass es UTC darstellt oder keine s Zeitzoneninformationen enthält, aber styles das DateTimeStyles.AssumeUniversal Flag enthält, analysiert die Methode die Zeichenfolge, führt keine Zeitzonenkonvertierung für den zurückgegebenen DateTime Wert durch und legt die Kind Eigenschaft auf DateTimeKind.Utc. In allen anderen Fällen hat die Kennzeichnung keine Auswirkung.
AllowInnerWhite Obwohl gültig, wird dieser Wert ignoriert. Innerer Leerraum ist in den Datums- und Uhrzeitelementen zulässig s.
AllowLeadingWhite Obwohl gültig, wird dieser Wert ignoriert. Führende Leerzeichen sind in den Datums- und Uhrzeitelementen zulässig s.
AllowTrailingWhite Obwohl gültig, wird dieser Wert ignoriert. Nachfolgende Leerzeichen sind in den Datums- und Uhrzeitelementen zulässig s.
AllowWhiteSpaces Gibt an, dass s führende, innere und nachfolgende Leerzeichen enthalten können. Dies ist die Standardeinstellung. Sie kann nicht außer Kraft gesetzt werden, indem ein restriktiverer DateTimeStyles Enumerationswert wie DateTimeStyles.Nonez. B. . .
AssumeLocal Gibt an, dass bei s fehlenden Zeitzoneninformationen davon ausgegangen wird, dass sie eine Ortszeit darstellt. Sofern das DateTimeStyles.AdjustToUniversal Flag nicht vorhanden ist, wird die Kind Eigenschaft des zurückgegebenen DateTime Werts auf .DateTimeKind.Local
AssumeUniversal Gibt an, dass bei s fehlenden Zeitzoneninformationen angenommen wird, dass sie UTC darstellt. Sofern das DateTimeStyles.AdjustToUniversal Flag nicht vorhanden ist, konvertiert die Methode den zurückgegebenen DateTime Wert von UTC in ortszeit und legt dessen Kind Eigenschaft auf DateTimeKind.Local.
None Obwohl gültig, wird dieser Wert ignoriert.
RoundtripKind Bei Zeichenfolgen, die Zeitzoneninformationen enthalten, wird versucht, die Konvertierung einer Datums- und Uhrzeitzeichenfolge in einen DateTime Wert zu verhindern, auf den die Kind Eigenschaft festgelegt ist DateTimeKind.Local. In der Regel wird eine solche Zeichenfolge durch Aufrufen der Methode mithilfe der DateTime.ToString(String) Standardformatbezeichner "o", "r" oder "u" erstellt.

Wenn s keine Zeitzoneninformationen enthalten sind, gibt die DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Methode einen DateTime Wert zurück, dessen Kind Eigenschaft nicht styles anders angegeben istDateTimeKind.Unspecified. Wenn s Informationen zum Offset von Zeitzonen oder Zeitzonen enthalten sind, führt die DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Methode alle erforderlichen Zeitkonvertierungen durch und gibt eine der folgenden Werte zurück:

Dieses Verhalten kann mithilfe des DateTimeStyles.RoundtripKind Flags überschrieben werden.

Analysieren von benutzerdefinierten Kulturen

Wenn Sie eine für eine benutzerdefinierte Kultur generierte Datums- und Uhrzeitzeichenfolge analysieren, verwenden Sie die TryParseExact Methode anstelle der TryParse Methode, um die Wahrscheinlichkeit zu verbessern, dass der Analysevorgang erfolgreich ist. Eine benutzerdefinierte Kultur-Datums- und Uhrzeitzeichenfolge kann kompliziert und schwierig zu analysieren sein. Die TryParse Methode versucht, eine Zeichenfolge mit mehreren impliziten Analysemustern zu analysieren, die möglicherweise fehlschlagen. Im Gegensatz dazu müssen Sie explizit ein oder mehrere genaue Analysemuster festlegen, TryParseExact die wahrscheinlich erfolgreich sind.

Weitere Informationen zu benutzerdefinierten Kulturen finden Sie in der System.Globalization.CultureAndRegionInfoBuilder Klasse.