Wenn Sie das Format des Datums/der Uhrzeit genau kennen (dh es ändert sich nie und hängt nicht von der Kultur oder dem Gebietsschema des Benutzers ab), können Sie DateTime.TryParseExact
verwenden.
Zum Beispiel:
DateTime result;
if (DateTime.TryParseExact(
str, // The string you want to parse
"dd-MM-yyyy", // The format of the string you want to parse.
CultureInfo.InvariantCulture, // The culture that was used
// to create the date/time notation
DateTimeStyles.None, // Extra flags that control what assumptions
// the parser can make, and where whitespace
// may occur that is ignored.
out result)) // Where the parsed result is stored.
{
// Only when the method returns true did the parsing succeed.
// Therefore it is in an if-statement and at this point
// 'result' contains a valid DateTime.
}
Die Format-Zeichenkette eine vollständig spezifiziert werden kann custom date/time format (wie dd-MM-yyyy
) oder ein general format specifier (wie g
). Für letztere spielt die Kultur eine Rolle, wie das Datum formatiert wird. Zum Beispiel werden in den Niederlanden Daten als 26-07-2012
(dd-MM-yyyy
) geschrieben, während in den USA Daten als 7/26/2012
(M/d/yyyy
) geschrieben werden.
Dies funktioniert jedoch nur, wenn Ihre Zeichenfolge str
nur das Datum enthält, das Sie analysieren möchten. Wenn Sie eine größere Zeichenfolge mit allen möglichen unerwünschten Zeichen um das Datum haben, müssen Sie zuerst das Datum dort finden. Dies kann mit einem regulären Ausdruck geschehen, der ein ganz anderes Thema an sich ist. Einige allgemeine Informationen zu regulären Ausdrücken (Regex) in C# finden Sie unter here. Eine Referenz für einen regulären Ausdruck lautet here. Zum Beispiel kann ein Datum ähnlich d/M/yyyy
mit dem Regex \d{1,2}\/\d{1,2}\/\d{4}
gefunden werden.
Mögliche Duplizieren von http://stackoverflow.com/questions/11660423/string-comparison-on-date-format-wont-work – MikeKulls
Nützliche Referenz für Personen, die stattdessen die LINQ-Abfragesyntax verwenden http://stackoverflow.com/questions/9003697/how-to-i-use-tryparse-in-a-linq-query-of-xml-data –