Unterscheidung von FormatExceptions bei DateTime.ParseExact

07/08/2008 - 14:50 von Marvin Massih | Report spam
Hallo,

ich parse verschiedene Datums-/Zeitwerte mit DateTime.ParseExact.

Wenn für ein Feld bspw. das Datumsformat "dd.MM.yyyy" festgelegt ist,
soll für "01.01.08" eine FormatException ausgelöst werden, das klappt
natürlich.

Nun habe ich teilweise aber auch Werte wie "00.00.1900", was zwar dem
Datumsformat entspricht, aber natürlich kein gültiges Datum ist.
In diesem Fall soll keine FormatException ausgelöst werden.

Wie kann ich beide Fàlle - abgesehen von der Message-Eigenschaft der
FormatException - unterscheiden?

Gruß
Marvin
 

Lesen sie die antworten

#1 Frank Dzaebel
07/08/2008 - 16:48 | Warnen spam
Hallo Marvin,

ich parse verschiedene Datums-/Zeitwerte mit DateTime.ParseExact.
Wenn für ein Feld bspw. das Datumsformat "dd.MM.yyyy" festgelegt ist,
soll für "01.01.08" eine FormatException ausgelöst werden, das klappt
natürlich.
Nun habe ich teilweise aber auch Werte wie "00.00.1900", was zwar dem
Datumsformat entspricht, aber natürlich kein gültiges Datum ist.
In diesem Fall soll keine FormatException ausgelöst werden.



Gut, also Du kannst ja so wie im folgenden es ohne
Exception feststellen.

string datum = "01.13.2008";
DateTime dtime;
bool success = DateTime.TryParseExact(datum, "dd.MM.yyyy",
CultureInfo.CurrentCulture, DateTimeStyles.None, out dtime);

Aber ich schàtze Du meinst, dass einfach "nur" die
Syntax richtig sein soll, das ginge dann z.B. mit
einer regulàren Expression.

string datum = "01.01.2008";
bool ok = Regex.IsMatch(datum, @"\d{1,2}\.\d{1,2}\.\d{4}");
// ganz grob, musst Du nach Deinen Wünschen anpassen


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen