Arbeit mit Datum und Uhrzeit in C#: DateTime, TimeSpan und Formatierung

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

Einleitung: Warum die Arbeit mit Datumsangaben in C# wichtig ist



In der modernen Softwareentwicklung ist die Arbeit mit Datums- und Zeitangaben eine der häufigsten und kritischsten Aufgaben. Ob es um Ereignisprotokollierung, die Berechnung von Fristen, die Anzeige von Nachrichten oder die Erstellung von Berichten geht – überall ist eine präzise und flexible Verwaltung von Zeitdaten erforderlich. C# und die .NET-Plattform bieten dem Entwickler dafür einen leistungsstarken und intuitiven Satz an Werkzeugen.



In diesem Artikel werden wir die wichtigsten Typen für die Arbeit mit Datums- und Zeitangaben in C# im Detail besprechen: DateTime, TimeSpan und DateTimeOffset. Sie erfahren, wie Sie Datumsangaben erstellen, ändern, formatieren und vergleichen sowie wie Sie kompetent mit Zeitzonen arbeiten. Das Material wird sowohl für Anfänger als auch für erfahrene Entwickler nützlich sein, die ihr Wissen systematisieren möchten.



Die grundlegenden Datentypen: DateTime, TimeSpan und DateTimeOffset



1. Die Struktur DateTime



DateTime ist der primäre Typ zur Darstellung eines Zeitpunkts (Datum + Uhrzeit). Er speichert Informationen vom 1. Januar 0001 bis zum 31. Dezember 9999 mit einer Genauigkeit von 100 Nanosekunden (Ticks).



Erstellen eines DateTime-Objekts:

// Aktuelles Datum und UhrzeitDateTime now = DateTime.Now;// Aktuelles Datum und Uhrzeit (UTC)DateTime utcNow = DateTime.UtcNow;// Ein bestimmtes DatumDateTime specificDate = new DateTime(2025, 3, 15);// Datum und Uhrzeit mit SekundengenauigkeitDateTime specificDateTime = new DateTime(2025, 3, 15, 14, 30, 0);// Heutiges Datum (Zeit = 00:00:00)DateTime today = DateTime.Today;


2. Die Struktur TimeSpan



TimeSpan stellt ein Zeitintervall (einen Zeitraum) dar. Es ist nicht an ein bestimmtes Datum gebunden, sondern speichert die Zeitdifferenz: Tage, Stunden, Minuten, Sekunden und Sekundenbruchteile.



Erstellen und Verwenden von TimeSpan:

// Erstellen eines Intervalls: 2 Tage, 5 Stunden, 30 MinutenTimeSpan interval = new TimeSpan(2, 5, 30, 0);// Intervall aus StundenTimeSpan fromHours = TimeSpan.FromHours(48.5);// Differenz zwischen zwei DatumsangabenDateTime start = new DateTime(2025, 1, 1);DateTime end = new DateTime(2025, 3, 15);TimeSpan difference = end - start;Console.WriteLine(difference.Days); // 73


3. Die Struktur DateTimeOffset



DateTimeOffset ist eine modernere Alternative zu DateTime, die neben Datum und Uhrzeit auch den Offset (Versatz) zur UTC speichert (z. B. +03:00). Dies hilft, Verwirrung mit Zeitzonen bei der Datenübertragung zwischen Systemen zu vermeiden.



// Aktuelle Zeit mit OffsetDateTimeOffset localOffset = DateTimeOffset.Now;// UTC-Zeit mit Offset +00:00DateTimeOffset utcOffset = DateTimeOffset.UtcNow;// Erstellen mit Angabe des OffsetsDateTimeOffset specific = new DateTimeOffset(2025, 3, 15, 12, 0, 0, TimeSpan.FromHours(3));


Grundlegende Operationen: Addition, Subtraktion und Vergleich



Arithmetik mit DateTime und TimeSpan



Einer der Hauptvorteile von C# ist die bequeme Datumsarithmetik. Sie können problemlos Tage, Monate, Jahre addieren oder subtrahieren sowie mit Stunden und Minuten arbeiten.



DateTime today = DateTime.Today;// 10 Tage hinzufügenDateTime futureDate = today.AddDays(10);// 2 Monate hinzufügenDateTime futureMonth = today.AddMonths(2);// 1 Jahr subtrahierenDateTime pastYear = today.AddYears(-1);// 5 Stunden und 30 Minuten hinzufügenDateTime precise = today.AddHours(5).AddMinutes(30);


Arbeiten mit TimeSpan:

TimeSpan workDay = new TimeSpan(8, 0, 0); // 8 StundenTimeSpan breakTime = new TimeSpan(0, 45, 0); // 45 MinutenTimeSpan totalWork = workDay + breakTime; // 8 Stunden 45 MinutenTimeSpan remaining = workDay - breakTime; // 7 Stunden 15 Minuten


Vergleich von Datumsangaben



Zum Vergleichen von zwei Zeitpunkten werden die standardmäßigen Vergleichsoperatoren verwendet:



Da                

Blogs

Buchempfehlungen