Розбір дати з рядка

C#:
Розбір дати з рядка

Як:

Базовий аналіз:

Методи DateTime.Parse та DateTime.TryParse є основними варіантами для конвертації рядка у DateTime. Ось швидкий приклад:

string dateString = "2023-04-12";
DateTime parsedDate;

if (DateTime.TryParse(dateString, out parsedDate))
{
    Console.WriteLine($"Успішно аналізовано: {parsedDate}");
}
else
{
    Console.WriteLine("Не вдалося аналізувати.");
}
// Вивід: Успішно аналізовано: 4/12/2023 12:00:00 AM

Вказівка культури:

Іноді вам потрібно аналізувати рядок дати, який є у певному форматі культури. Це можна досягнути за допомогою класу CultureInfo:

using System.Globalization;

string dateString = "12 avril 2023";
var cultureInfo = new CultureInfo("fr-FR");
DateTime parsedDate = DateTime.Parse(dateString, cultureInfo);

Console.WriteLine(parsedDate);
// Вивід: 4/12/2023 12:00:00 AM

Точний аналіз з певним форматом:

У сценаріях, де дати надходять у певному форматі, який може бути нестандартним, DateTime.ParseExact стане в нагоді:

string dateString = "Wednesday, 12 April 2023";
string format = "dddd, d MMMM yyyy";
DateTime parsedDate = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);

Console.WriteLine(parsedDate);
// Вивід: 4/12/2023 12:00:00 AM

Використання NodaTime:

Для ще більш надійного аналізу дати та часу, розгляньте використання популярної сторонньої бібліотеки NodaTime. Вона надає ширший спектр можливостей обробки дати/часу:

using NodaTime;
using NodaTime.Text;

var pattern = LocalDatePattern.CreateWithInvariantCulture("yyyy-MM-dd");
var parseResult = pattern.Parse("2023-04-12");

if (parseResult.Success)
{
    LocalDate localDate = parseResult.Value;
    Console.WriteLine(localDate); // 2023-04-12
}
else
{
    Console.WriteLine("Не вдалося аналізувати.");
}

NodaTime пропонує широку підтримку часових зон, концепцій періоду та тривалості, а також багато різних календарних систем, роблячи її потужним вибором для складної маніпуляції з датами та часом у .NET додатках.