C#:
Einen Datum aus einem String analysieren
Wie geht das:
Basis-Parsing:
Die Methoden DateTime.Parse
und DateTime.TryParse
sind die ersten Anlaufstellen, um einen String in ein DateTime
umzuwandeln. Hier ist ein kurzes Beispiel:
string dateString = "2023-04-12";
DateTime parsedDate;
if (DateTime.TryParse(dateString, out parsedDate))
{
Console.WriteLine($"Erfolgreich geparst: {parsedDate}");
}
else
{
Console.WriteLine("Parsen fehlgeschlagen.");
}
// Ausgabe: Erfolgreich geparst: 12.04.2023 00:00:00
Spezifische Kultur angeben:
Manchmal muss ein Datumsstring in einem spezifischen Kulturformat geparst werden. Dies kann mit der CultureInfo
-Klasse erreicht werden:
using System.Globalization;
string dateString = "12 avril 2023";
var cultureInfo = new CultureInfo("fr-FR");
DateTime parsedDate = DateTime.Parse(dateString, cultureInfo);
Console.WriteLine(parsedDate);
// Ausgabe: 12.04.2023 00:00:00
Exaktes Parsen mit einem spezifischen Format:
Für Szenarien, in denen Daten in einem spezifischen Format vorliegen, das möglicherweise nicht standardmäßig ist, kommt DateTime.ParseExact
gelegen:
string dateString = "Mittwoch, 12 April 2023";
string format = "dddd, d MMMM yyyy";
DateTime parsedDate = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
Console.WriteLine(parsedDate);
// Ausgabe: 12.04.2023 00:00:00
Mit NodaTime:
Für noch robustere Datums- und Zeitparsings, ziehen Sie die Verwendung der beliebten Drittanbieterbibliothek NodaTime in Betracht. Sie bietet eine breitere Palette von Datums-/Zeitbehandlungsfähigkeiten:
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("Parsen fehlgeschlagen.");
}
NodaTime bietet umfangreiche Unterstützung für Zeitzonen, Perioden- und Dauerkonzepte sowie viele verschiedene Kalendersysteme, was es zu einer leistungsstarken Wahl für komplexe Datum- und Zeitmanipulationen in .NET-Anwendungen macht.