Analysering av en dato fra en streng

C#:
Analysering av en dato fra en streng

Hvordan:

Grunnleggende Analysering:

Metodene DateTime.Parse og DateTime.TryParse er de gå-til alternativene for å konvertere en tekststreng til en DateTime. Her er et kjapt eksempel:

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

if (DateTime.TryParse(dateString, out parsedDate))
{
    Console.WriteLine($"Vellykket analysert: {parsedDate}");
}
else
{
    Console.WriteLine("Klarte ikke å analysere.");
}
// Utdata: Vellykket analysert: 4/12/2023 12:00:00 AM

Spesifisere en Kultur:

Noen ganger trenger du å analysere en datostreng som er i et spesifikt kulturformat. Dette kan du oppnå ved å bruke CultureInfo-klassen:

using System.Globalization;

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

Console.WriteLine(parsedDate);
// Utdata: 4/12/2023 12:00:00 AM

Eksakt Analysering med et Spesifikt Format:

For scenarioer der datoer kommer i et spesifikt format som kanskje ikke er standard, kommer DateTime.ParseExact godt med:

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

Console.WriteLine(parsedDate);
// Utdata: 4/12/2023 12:00:00 AM

Bruke NodaTime:

For enda mer robust dato- og tidsanalysering, vurder å bruke det populære tredjepartsbiblioteket NodaTime. Det gir et bredt spekter av dato-/tidshåndteringsevner:

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("Klarte ikke å analysere.");
}

NodaTime tilbyr omfattende støtte for tidssoner, periode- og varighetskonsepter, og mange forskjellige kalendersystemer, noe som gjør det til et kraftig valg for kompleks dato- og tidshåndtering i .NET-applikasjoner.