Проверьте, содержит ли строка дату или нет - PullRequest
11 голосов
/ 02 сентября 2011

С учетом строки "15:30:20" и "2011-09-02 15:30:20", Как я могу динамически проверить, содержит ли данная строка дату или нет?

"15:30:20" -> Not Valid

"2011-09-02 15:30:20" => Valid

Ответы [ 4 ]

21 голосов
/ 02 сентября 2011

Использование 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");
13 голосов
/ 02 сентября 2011

Вы можете использовать

bool b = DateTime.TryParseExact("15:30:20", "yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture,DateTimeStyles.AssumeLocal,out datetime);

Для проверки возможности разбора строки в DateTime.

1 голос
/ 04 июля 2018

для dotnet core 2.0,

DateTime.TryParseExact("2017-09-02", "dd MMM yyyy", CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out DateTime dtDateTime)
0 голосов
/ 30 сентября 2015

Используйте этот метод, чтобы проверить, является ли строка датой или нет:

    private bool CheckDate(String date)
    {
        try
        {
            DateTime dt = DateTime.Parse(date);
            return true;
        }
        catch
        {
            return false;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...