Problemstellung:
Der Versuch, mit der Parse
-Methode eine Datumszeichenfolge im Format „TT/MM/JJJJ“ in ein DateTime
-Objekt zu konvertieren, führt zu einer Ausnahme mit der Meldung „Zeichenfolge wurde nicht als gültiges DateTime-Format erkannt“.
Erklärung und Lösung:
Die MethodeParse
verwendet beim Parsen einer benutzerdefinierten formatierten Zeichenfolge die Formateinstellungen der aktuellen Kultur. In diesem Fall stellt die Zeichenfolge ein europäisches Datumsformat dar, das sich vom amerikanischen Standardformat unterscheidet. Um dieses Problem zu beheben, verwenden Sie stattdessen die Methode ParseExact
.
ParseExact
akzeptiert drei Parameter: die zu analysierende Zeichenfolge, das erwartete Format und den Formatanbieter. Formatanbieter geben kulturspezifische Formatierungsregeln an, die angewendet werden sollen. Für das gegebene Beispiel:
<code class="language-csharp">this.Text = "22/11/2009"; DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);</code>
Wenn Sie null
als Formatanbieter verwenden, werden standardmäßig die Einstellungen der aktuellen Kultur verwendet. Alternativ können Sie eine bestimmte Kultur angeben, zum Beispiel:
<code class="language-csharp">DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", CultureInfo.GetCultureInfo("en-GB"));</code>
Unterschied zwischen Parse und ParseExact:
Wählen Sie den Aspekt der besten Antwort:
Typsicherheit: Beide Antworten bieten Typsicherheit, da das Ergebnis der Analyse ein gültiges DateTime
-Objekt ist.
Leistung: Beide Methoden funktionieren ähnlich, da sie beide das Parsen der Zeichenfolge in eine Datumsdarstellung beinhalten.
Flexibilität: ParseExact
bietet mehr Flexibilität, indem es benutzerdefinierte Zielformate zulässt, wodurch es sich besser für den Umgang mit Daten mit nicht standardmäßigen Formaten oder unterschiedlichen Kulturen eignet.
Das obige ist der detaillierte Inhalt vonWie kann ich kulturspezifische Datumszeichenfolgen in C#richtig analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!