Herauszufinden, ob ein string enthält ein Datum und eine Uhrzeit
Arbeite ich an einem Projekt, wo ich lese, in einer Datei kommen könnten, die in zwei verschiedenen Formaten, eins beinhaltet ein Datum und eine Zeit und die andere nicht.
Wenn ich lese in der ersten Zeile, die ich brauche, um zu überprüfen, ob der string enthält das Datum und die Zeit oder nicht und Lesen Sie die Datei und basiert auf das überprüfen, Lesen Sie die Datei in einer bestimmten Art und Weise.
Ich vermute, dies wäre eine Art regulären Ausdruck, aber haben keine Ahnung, wo zu beginnen und nicht finden können, was relevant ist.
Vielen Dank für jede Hilfe, die Sie bieten können.
UPDATE
Ich glaube nicht, dass ich schon sehr klar, was ich verlange. Wenn ich die log-Datei Zeile für Zeile kann die Zeile kommen, wie:
Col1 Col2 Col3 Col4 Col5
Manchmal kann die Zeile kommen, wie
Col1 17-02-2013 02:05:00 Col2 Col3 Col4 Col5
Wenn ich Lesen Sie die Zeile, die ich brauche, um zu überprüfen, ob es ein Datum und eine Uhrzeit-Zeichenfolge, die in den string.
- Können Sie teilen, was Sie versucht haben?
- wissen Sie genau, in welche datetime-locale-format diese mögliche Termine werden präsentiert wie? dd-mm-yyyy hh:mm:ss immer?
- Es sollte immer im format dd-mm hh:mm:ss. Ich glaube nicht, dass das format ändert (beachten Sie, dass das Jahr nicht im Lieferumfang enthalten). Ich vergaß zu erwähnen, dass früher
- was andere extra könnte der text finden Sie gemischt in die Spalte, die würde verhindern, dass es ordnungsgemäß analysiert wird als datetime-mit TryParse()?
- Was ich war, nachdem ich einen check über den gesamten string zu sehen, ob es enthält eine Datum/Zeit Zeichenkette. Wenn dem so ist, dann gehe ich durch den string und setzen Sie jede Spalte in eine variable einschließlich einer Variablen, sonst gehe ich durch jede Spalte keine sorgen darüber zu machen, ein Datum und eine Uhrzeit. Ansonsten weiß ich nicht, ob es 5 Spalten (kein Datum) oder 6 Spalten (mit Datum)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn das format für das Datum definiert wurde, können Sie mit Regex zu lösen.
Update 2: Finden Sie heraus, mithilfe von DateTime.TryParseExact ist ein viel besserer Weg, dass die Verwendung von Regex-Ausdrücken
DateTime.TryParse(x)
fehlgeschlagen ist, wird false zurückgegeben, so dass Sie nicht brauchen, um über diese minvalue überprüfen.DateTime.TryParse(x)
gibt einen booleschen Wert zurück, ob es erfolgreich war oder nicht. Das ist, wenn es immer false zurückgeben, wenn es nicht gelingt.Verwenden Sie diese Methode, um zu überprüfen, ob string, Datum oder nicht:
Wenn der string-Wert ist ein Gültiger datetime-Wert, dann wird es keine Ausnahme:
Wenn der string-Wert ist ein Ungültiger datetime-Wert, dann wird es eine Ausnahme geben: