Метод DateTime.TryParse
Метод TryParse через параметр
out отдаёт разобранную дату
при успехе. Культура задаётся явно -
CultureInfo.InvariantCulture.
При ошибке формата исключение не
бросается, в отличие от
Parse.
Синтаксис
using System.Globalization;
bool ok = DateTime.TryParse(text, CultureInfo.InvariantCulture, out DateTime dt);
Пример
Давайте разберём "2020-01-02":
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool ok = DateTime.TryParse(
"2020-01-02", CultureInfo.InvariantCulture, out DateTime res);
Console.WriteLine(ok);
Console.WriteLine(res.Day);
}
}
Результат выполнения кода:
True
2
Пример
Давайте передам "abcde":
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool res = DateTime.TryParse(
"abcde", CultureInfo.InvariantCulture, out _);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте сравним с
TryParseExact
при свободном формате:
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool ok = DateTime.TryParse(
"2020-01-02 03:04:05", CultureInfo.InvariantCulture, out DateTime res);
Console.WriteLine(res.Hour);
Console.WriteLine(ok);
}
}
Результат выполнения кода:
3
True
Смотрите также
-
Parse,
разбор с исключением -
TryParseExact,
шаблон без сбоя -
ToString,
строка из даты -
AddDays,
сдвиг после разбора