2016-07-14 17 views
-2

Ich verwende DateTime.TryParse(value, out datetime), um zu überprüfen, ob eine Zeichenfolge ein gültiges Datum hat. Aber ich habe ein Problem. Wenn der Wert das Zeitformat ist (Beispiel: 14:25:26), gibt Datetime.TryParse den Wert true zurück. Das ist nicht das, was ich erwarte. Wie kann ich das beheben?DateTime.TryParse überprüft den Zeitabschnitt einer Zeichenfolge nicht ordnungsgemäß

+0

14:25:26 ist eine gültige Zeit. Das ist 02.25.26 Uhr. –

+1

Ich habe Ihre Frage ein wenig verbessert, aber Sie sollten mehr Beispielcode und Ihr erwartetes Ergebnis hinzufügen. –

+0

Nicht wirklich klar, warum Sie glauben, dass der Wert ungültig ist und was Sie tatsächlich überprüfen möchten. Lesen der Dokumentation kann helfen, aber zumindest die Frage mit Ihren Erwartungen und Zielen zu bearbeiten, so dass Antworten abgestimmt werden können. –

Antwort

1

Dies wird in der Tat wahr, und das ist zu erwarten. Der Wert dt endet mit dem aktuellen Datum.

DateTime dt; 
var result = DateTime.TryParse("14:25:26", out dt); 

Wenn Sie eine Zeichenfolge wollen, die nur eine Zeit enthält ungültig sein, könnten Sie TryParseExact stattdessen verwenden.

DateTime dt; 
var result = DateTime.TryParseExact("14:25:26", "MM/dd/yyyy HH:mm:ss", null, DateTimeStyles.None, out dt); 
// result is False, since the string does not contain a date