Arbeiten mit Daten in C# (.NET): Überblick über Bibliotheken und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Daten in C# (.NET): vollständiger Überblick über Bibliotheken und integrierte Werkzeuge



Die Verarbeitung von Datums- und Zeitangaben gehört zu den häufigsten Aufgaben in der Entwicklung. Im C# (.NET)-Ökosystem gibt es sowohl leistungsstarke integrierte Funktionen (System.DateTime) als auch Drittanbieter-Bibliotheken, die komplexe Szenarien vereinfachen: Arbeit mit Zeitzonen, Formatierung, Intervalle und Parsing. In diesem Artikel betrachten wir die wichtigsten Werkzeuge, einschließlich der modernen Möglichkeiten von .NET 6+ und beliebter NuGet-Pakete.



1. Integrierte Mittel: DateTime, DateOnly, TimeOnly



Die Basisklasse System.DateTime ist seit den ersten Versionen von .NET verfügbar. Sie unterstützt:

  • Erstellung eines Datums: new DateTime(2025, 3, 15)
  • Arithmetik: date.AddDays(10), date.AddMonths(-1)
  • Vergleich: date1 > date2
  • Formatierung: date.ToString("yyyy-MM-dd")


Ab .NET 6 kamen die Typen DateOnly und TimeOnly hinzu – sie sind nicht an eine Zeitzone gebunden und speichern nur das Datum oder nur die Uhrzeit. Dies ist praktisch für Geburtstage, Arbeitszeitpläne und Zeitpläne.



using System;

DateOnly birthday = new DateOnly(1990, 5, 20);TimeOnly alarm = new TimeOnly(7, 30);

Console.WriteLine($"Datum: {birthday}, Uhrzeit: {alarm}");// Ausgabe: Datum: 20.05.1990, Uhrzeit: 07:30


2. TimeSpan — Zeitintervalle



Für die Arbeit mit Zeitabständen wird TimeSpan verwendet. Es ermöglicht die Berechnung der Differenz zwischen Daten, der Dauer von Vorgängen und von Timeouts.



DateTime start = DateTime.Now;// ... Codeausführung ...DateTime end = DateTime.Now;

TimeSpan elapsed = end - start;Console.WriteLine($"Vergangen: {elapsed.TotalSeconds} Sek.");


3. Noda Time — erweiterte Arbeit mit Daten



Noda Time (NuGet: NodaTime) ist eine Bibliothek von Jon Skeet (Autor eines beliebten C#-Buches). Sie löst die Probleme von DateTime:

  • Klare Trennung zwischen „Moment in der Zeit“ (Instant), „Datum im Kalender“ (LocalDate) und „Zeit mit Zeitzone“ (ZonedDateTime).
  • Unterstützung für Kalender (islamischer, jüdischer, japanischer).
  • Unveränderlichkeit aller Typen.
  • Korrekte Verarbeitung von Zeitzonen über die IANA-Datenbank (tzdata).


using NodaTime;

Instant now = SystemClock.Instance.GetCurrentInstant();DateTimeZone zone = DateTimeZoneProviders.Tzdb["Europe/Moscow"];ZonedDateTime moscowTime = now.InZone(zone);

Console.WriteLine($"Aktuelle Zeit in Moskau: {moscowTime:yyyy-MM-dd HH:mm}");

// Arbeiten mit LocalDateLocalDate today = LocalDate.FromDateTime(DateTime.Today);LocalDate nextWeek = today.PlusDays(7);


Noda Time ist besonders nützlich in Projekten, bei denen die Genauigkeit von Zeitzonen kritisch ist (Logs, Buchungen, internationale Systeme).



4. Humanizer — menschenlesbare Daten



Humanizer (NuGet: Humanizer.Core) ist eine Bibliothek zur Umwandlung von Zahlen, Daten und Zeiten in natürliche Sprache. Sie kann:

  • Relative Zeit anzeigen: "vor 3 Minuten", "in 2 Tagen".
  • Monats- und Wochentagsnamen deklinieren.
  • Zeitintervalle formatieren: "1 Stunde 30 Minuten".


using Humanizer;

DateTime pastDate = DateTime.UtcNow.AddHours(-5);Console.WriteLine(pastDate.Humanize()); // "vor 5 Stunden"

TimeSpan span = new TimeSpan(2, 45, 0);Console.WriteLine(span.Humanize()); // "2 Stunden 45 Minuten"


Humanizer unterstützt Lokalisierung (Russisch — Humanizer.Core.ru).



5. FluentDateTime — Fluent-Schnittstelle für DateTime



FluentDateTime (NuGet: FluentDateTime) fügt Erweiterungsmethoden für eine bequemere Arbeit mit DateTime hinzu.

Empfehlungen