Метод DateTime.TryParseExact
Метод TryParseExact работает как
ParseExact,
но не бросает FormatException.
Культура -
CultureInfo.InvariantCulture.
Дополнительные правила -
DateTimeStyles.
Синтаксис
using System.Globalization;
bool ok = DateTime.TryParseExact(
text, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dt);
Пример
Давайте разберём "2020-01-02"
по "yyyy-MM-dd":
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool ok = DateTime.TryParseExact(
"2020-01-02",
"yyyy-MM-dd",
CultureInfo.InvariantCulture, DateTimeStyles.None,
out DateTime res);
Console.WriteLine(ok);
Console.WriteLine(res.Month);
}
}
Результат выполнения кода:
True
1
Пример
Давайте подставим неверный шаблон:
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool res = DateTime.TryParseExact(
"2020-01-02",
"dd.MM.yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None,
out _);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте отклоним "abcde"
при любом шаблоне:
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool res = DateTime.TryParseExact(
"abcde",
"yyyy-MM-dd",
CultureInfo.InvariantCulture, DateTimeStyles.None,
out _);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Смотрите также
-
ParseExact,
строгий разбор с исключением -
TryParse,
без шаблона -
ToString,
формат для проверки -
IsLeapYear,
год в разобранной дате