Podano ciąg "15:30:20"
i "2011-09-02 15:30:20"
, Jak mogę dynamicznie sprawdzać, czy dany ciąg zawiera datę, czy nie?Sprawdź, czy ciąg zawiera datę, czy nie.
"15:30:20" -> Not Valid
"2011-09-02 15:30:20" => Valid
Podano ciąg "15:30:20"
i "2011-09-02 15:30:20"
, Jak mogę dynamicznie sprawdzać, czy dany ciąg zawiera datę, czy nie?Sprawdź, czy ciąg zawiera datę, czy nie.
"15:30:20" -> Not Valid
"2011-09-02 15:30:20" => Valid
Użyj metody DateTime.TryParseExact.
string []format = new string []{"yyyy-MM-dd HH:mm:ss"};
string value = "2011-09-02 15:30:20";
DateTime datetime;
if (DateTime.TryParseExact(value, format, System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.NoCurrentDateDefault , out datetime))
Console.WriteLine("Valid : " + datetime);
else
Console.WriteLine("Invalid");
Można użyć
bool b = DateTime.TryParseExact("15:30:20", "yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture,DateTimeStyles.AssumeLocal,out datetime);
Aby sprawdzić, czy ciąg jest parsable do DateTime.
Jeśli użyjesz powyższego rozwiązania, moje 2 próbki zawsze będą wyświetlane jako prawdziwe. Chcę sprawdzić, czy ciąg nie zawiera daty, a następnie pokazać fałsz. –
Zmieniono, spróbuj teraz – Dominik
Zakładamy, że data będzie ZAWSZE być w tym formacie. Zastanawiam się, czy właśnie tego OP chce – RichK
Zastosowanie tej metody, aby sprawdzić, czy ciąg jest data czy nie:
private bool CheckDate(String date)
{
try
{
DateTime dt = DateTime.Parse(date);
return true;
}
catch
{
return false;
}
}
Możliwa powielać http://stackoverflow.com/questions/37732/what-is-the-regex-pattern-for -datetime-2008-09-01-123545 – Zenwalker