Анализ даты из строки

C#:
Анализ даты из строки

Как это сделать:

using System;
using System.Globalization;

class Program
{
    static void Main()
    {
        string dateString = "2023-03-15";
        DateTime parsedDate = DateTime.Parse(dateString);
        Console.WriteLine(parsedDate); // Вывод: 3/15/2023 12:00:00 AM
        
        // С конкретным форматом
        dateString = "15 марта, 2023";
        string format = "d MMMM, yyyy";
        CultureInfo provider = CultureInfo.InvariantCulture;
        parsedDate = DateTime.ParseExact(dateString, format, provider);
        Console.WriteLine(parsedDate); // Вывод: 3/15/2023 12:00:00 AM
    }
}

Подробное погружение

До DateTime программисты полагались на пользовательский код для работы с датами, что чревато ошибками и неэффективностью. Структура DateTime в .NET стала настоящей революцией в этом вопросе, предоставив надежные методы разбора — Parse и ParseExact.

Parse пытается понять строку с датой, основываясь на специфических для культуры или универсальных форматах. Отлично подходит, когда вы ожидаете стандартные форматы дат. Однако, если у вас есть конкретные или нестандартные форматы дат, ParseExact (вместе с TryParse и TryParseExact для обработки ошибок) будет вашим спасением. Здесь вы указываете точный формат с помощью пользовательского шаблона.

Реализация использует класс CultureInfo для учета различных культурных форматов дат. Используя ParseExact, вы избегаете культурных недопониманий — ваш определенный шаблон и есть закон. Помните, компьютерные даты начинаются с 1 января 0001 года, поэтому убедитесь, что ваша строка представляет действительную дату в пределах календарного диапазона .NET.

Смотри также