С учетом строки "15:30:20" и "2011-09-02 15:30:20", Как я могу динамически проверить, содержит ли данная строка дату или нет?
"15:30:20"
"2011-09-02 15:30:20"
"15:30:20" -> Not Valid "2011-09-02 15:30:20" => Valid
Использование 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");
Вы можете использовать
bool b = DateTime.TryParseExact("15:30:20", "yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture,DateTimeStyles.AssumeLocal,out datetime);
Для проверки возможности разбора строки в DateTime.
для dotnet core 2.0,
DateTime.TryParseExact("2017-09-02", "dd MMM yyyy", CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out DateTime dtDateTime)
Используйте этот метод, чтобы проверить, является ли строка датой или нет:
private bool CheckDate(String date) { try { DateTime dt = DateTime.Parse(date); return true; } catch { return false; } }