.NET-HILFE

Datetime-Objekte in C# (Wie es für Entwickler funktioniert)

Chipego
Chipego Kalinda
3. April 2024
Teilen Sie:

Einführung

DateTime-Objekte in C# sind grundlegend für die Arbeit mit Daten und Zeiten in .NET Framework-Anwendungen. Sie bieten einen robusten Satz von Funktionen zum Bearbeiten, Formatieren und Vergleichen von Daten und Zeiten.

Dieser Artikel soll einen umfassenden Überblick über DateTime-Objekte in C# bieten und behandelt deren Erstellung, Manipulation, Formatierung sowie gängige Anwendungsfälle. Am Ende des Artikels werden wir auch erkunden, wie IronPDF von Iron Software in der Lage ist, ein PDF-Dokument in C#-Anwendungen spontan zu erzeugen.

DateTime-Objekte erstellen

Das Erstellen eines DateTime-Objekts in C# ist unkompliziert. Es gibt mehrere Konstruktoren, um ein DateTime-Objekt mit unterschiedlichen Parametern zu initialisieren:

// Current date and time
DateTime currentDateTime = DateTime.Now;
// Specific date and time
DateTime specificDateTime = new DateTime(2024, 3, 16, 10, 30, 0);
// Date only
DateTime dateOnly = DateTime.Today;
// Date and time in UTC
DateTime utcDateTime = DateTime.UtcNow;
// Current date and time
DateTime currentDateTime = DateTime.Now;
// Specific date and time
DateTime specificDateTime = new DateTime(2024, 3, 16, 10, 30, 0);
// Date only
DateTime dateOnly = DateTime.Today;
// Date and time in UTC
DateTime utcDateTime = DateTime.UtcNow;

Manipulieren von DateTime-Objekten

DateTime-Objekte bieten verschiedene Methoden zum Manipulieren von Daten und Zeiten, wie das Hinzufügen oder Subtrahieren von Zeitintervallen, das Extrahieren von Komponenten und das Konvertieren zwischen Zeitzonen.

DateTime now = DateTime.Now;
// Adding days
DateTime futureDate = now.AddDays(7);
// Subtracting hours
DateTime pastTime = now.AddHours(-3);
// Getting components
int year = now.Year;
int month = now.Month;
int day = now.Day;
int hour = now.Hour;
int minute = now.Minute;
int second = now.Second;
// Converting between time zones
DateTime utcTime = DateTime.UtcNow;
DateTime localTime = utcTime.ToLocalTime();
DateTime now = DateTime.Now;
// Adding days
DateTime futureDate = now.AddDays(7);
// Subtracting hours
DateTime pastTime = now.AddHours(-3);
// Getting components
int year = now.Year;
int month = now.Month;
int day = now.Day;
int hour = now.Hour;
int minute = now.Minute;
int second = now.Second;
// Converting between time zones
DateTime utcTime = DateTime.UtcNow;
DateTime localTime = utcTime.ToLocalTime();

Formatieren von DateTime-Objekten

DateTime-Objekte repräsentieren Zeiten oder Daten, die mithilfe verschiedener Formatangaben in Zeichenfolgen formatiert werden können, um sie im erforderlichen Format darzustellen.

DateTime dateTime = DateTime.Now;
// Standard date and time format
string standardFormat = dateTime.ToString("G");
// Custom format
string customFormat = dateTime.ToString("dd/MM/yyyy HH:mm:ss");
// Format for sorting
string sortableFormat = dateTime.ToString("yyyy-MM-ddTHH:mm:ss");
DateTime dateTime = DateTime.Now;
// Standard date and time format
string standardFormat = dateTime.ToString("G");
// Custom format
string customFormat = dateTime.ToString("dd/MM/yyyy HH:mm:ss");
// Format for sorting
string sortableFormat = dateTime.ToString("yyyy-MM-ddTHH:mm:ss");

Vergleich von DateTime-Objekten

C# bietet Standardvergleichsoperatoren (<, >, <=, >=, ==, !=), die verwendet werden können, um zwei DateTime-Objekte direkt zu vergleichen. Diese Operatoren vergleichen die zugrunde liegenden Ticks der DateTime-Objekte, die die Anzahl der 100-Nanosekunden-Intervalle darstellen, die seit dem 1. Januar 0001 um 00:00:00.000 im gregorianischen Kalender vergangen sind.

Hier ist ein Beispiel, das die Verwendung von Vergleichsoperatoren zeigt:

DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddDays(1);
if (date1 < date2)
{
    Console.WriteLine("date1 is earlier than date2.");
}
else if (date1 > date2)
{
    Console.WriteLine("date1 is later than date2.");
}
else
{
    Console.WriteLine("date1 is equal to date2.");
}
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddDays(1);
if (date1 < date2)
{
    Console.WriteLine("date1 is earlier than date2.");
}
else if (date1 > date2)
{
    Console.WriteLine("date1 is later than date2.");
}
else
{
    Console.WriteLine("date1 is equal to date2.");
}

Verwendung der DateTime.Compare C#-Methode

Zusätzlich zu Vergleichsoperatoren bieten DateTime-Objekte auch Methoden zum Vergleich der relativen Werte zwischen diesen Objekten. Diese Methoden bieten in bestimmten Szenarien mehr Flexibilität und Lesbarkeit. Die CompareTo()-Methode vergleicht die zugrunde liegenden DateTime-Objekte, um das Ergebnis zu bestimmen.

Es wird davon ausgegangen, dass die beiden Daten in der gleichen Zeitzone liegen. Nach dem Vergleich der Objekte wird ein ganzzahliger Wert zurückgegeben, der größer, kleiner oder gleich ist. Gleiche Datumswerte ergeben den ganzzahligen Wert Null.

DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddDays(1);
int result = date1.CompareTo(date2);
if (result < 0)
{
    Console.WriteLine("date1 is earlier than date2.");
}
else if (result > 0)
{
    Console.WriteLine("date1 is later than date2.");
}
else
{
    Console.WriteLine("date1 is equal to date2.");
}
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddDays(1);
int result = date1.CompareTo(date2);
if (result < 0)
{
    Console.WriteLine("date1 is earlier than date2.");
}
else if (result > 0)
{
    Console.WriteLine("date1 is later than date2.");
}
else
{
    Console.WriteLine("date1 is equal to date2.");
}

Vergleich von DateTime-Objekten mit Toleranz

Um DateTime-Objekte zu vergleichen, insbesondere wenn es um Berechnungen mit Zeitintervallen geht, ist es wichtig, aufgrund möglicher Unterschiede in der Genauigkeit ein Toleranzniveau zu berücksichtigen.

Dies kann erreicht werden, indem die absolute Differenz zwischen zwei DateTime-Werten mit einem vordefinierten Toleranzschwellenwert verglichen wird.

class Program
{
    public static void Main()
    {
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddMilliseconds(10);
TimeSpan tolerance = TimeSpan.FromMilliseconds(5);
bool isEqual = Math.Abs((date1 - date2).TotalMilliseconds) <= tolerance.TotalMilliseconds;
if (isEqual)
{
    Console.WriteLine("date1 is considered equal to date2 within the tolerance.");
}
else
{
    Console.WriteLine("date1 is not equal to date2 within the tolerance.");
}
}
}
class Program
{
    public static void Main()
    {
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now.AddMilliseconds(10);
TimeSpan tolerance = TimeSpan.FromMilliseconds(5);
bool isEqual = Math.Abs((date1 - date2).TotalMilliseconds) <= tolerance.TotalMilliseconds;
if (isEqual)
{
    Console.WriteLine("date1 is considered equal to date2 within the tolerance.");
}
else
{
    Console.WriteLine("date1 is not equal to date2 within the tolerance.");
}
}
}

Umgang mit Zeitzone und Sommerzeit

DateTime-Objekte in C# können sowohl die lokale Zeit als auch die koordinierte Weltzeit (UTC) darstellen. Es ist wichtig, sich der Zeitzonenumstellung bewusst zu sein, vor allem, wenn es um globale Anwendungen geht.

DateTime localTime = DateTime.Now;
DateTime utcTime = DateTime.UtcNow;
Console.WriteLine("Local Time: " + localTime);
Console.WriteLine("UTC Time: " + utcTime);
DateTime localTime = DateTime.Now;
DateTime utcTime = DateTime.UtcNow;
Console.WriteLine("Local Time: " + localTime);
Console.WriteLine("UTC Time: " + utcTime);

IronPDF zur Erzeugung von PDF-Dokumenten in C#;

IronPDF von Iron Software ist eine effiziente und einfach zu bedienende Bibliothek zur PDF-Erzeugung. Wir können es mit dem NuGet-Paketmanager installieren

Datetime-Objekte in C# (Wie es für Entwickler funktioniert): Abbildung 1

NuGet\Install-Package IronPdf -Version 2024.3.4

Oder von Visual Studio aus wie unten gezeigt

Datetime-Objekte in C# (wie es für Entwickler funktioniert): Abbildung 2 - Installation von IronPDF mit dem NuGet-Paketmanager

Lassen Sie uns nun in die PDF-Erzeugung eintauchen, um ein DateTime-Objekt zu demonstrieren.

class Program
{
    static void Main()
    {
        Console.WriteLine("-----------Iron Software-------------");
        var renderer = new ChromePdfRenderer(); // var pattern
        var content = " <h1> Iron Software is Awesome </h1> Made with IronPDF!";
        content += "<h2>Demo Datetime Objects in C#</h2>";
        // Current date and time
        content += "<h3>Current date and time</h3>";
        DateTime currentDateTime = DateTime.Now;
        content += $"<p>Current date and time: {currentDateTime:U}</p>";
        Console.WriteLine($"Current date and time: {currentDateTime:U}");
        // Specific date and time
        content += "<h3>Specific date and time</h3>";
        DateTime specificDateTime = new DateTime(2024, 3, 16, 10, 30, 0);
        content += $"<p>Specific date and time: {specificDateTime:U}</p>";
        Console.WriteLine($"Specific date and time: {specificDateTime:U}");
        // Date only
        content += "<h3>Date Only</h3>";
        DateTime dateOnly = DateTime.Today;
        content += $"<p>Date only: {dateOnly:U}</p>";
        Console.WriteLine($"Date only: {dateOnly:U}");
        // Date and time in UTC
        content += "<h3>Date and time in UTC</h3>";
        DateTime utcDateTime = DateTime.UtcNow;
        content += $"<p>Date only: {dateOnly:U}</p>";
        Console.WriteLine($"Date only: {dateOnly:U}");
        //Compare dates with Operators
        content += "<h3>Compare dates with Operators</h3>";
        DateTime date1 = DateTime.Now;
        DateTime date2 = DateTime.Now.AddDays(1);
        content += $"<p>Compare date1 {date1:d}, date2 {date2:d}: {CompareDates(date1, date2)}</p>";
        Console.WriteLine($"Compare date1 {date1:U}, date2 {date2:U}: {dateOnly:U}");
        //Compare dates with Compare Method
        content += "<h3>Compare dates with Compare Method</h3>";
        content += $"<p>Compare date1 {date1:d}, date2 {date2:d}: {CompareDatesWithCompare(date1, date2)}</p>";
        Console.WriteLine($"Compare date1 {date1:U}, date2 {date2:U}: {dateOnly:U}");
        var pdf = renderer.RenderHtmlAsPdf(content);
        pdf.SaveAs("outputDate.pdf"); // Saves PDF
    }
    public static string CompareDatesWithCompare(DateTime date1, DateTime date2)
    {
        int result = date1.CompareTo(date2);
        string resultString;
        if (result < 0)
        {
            resultString = "date1 is earlier than date2.";
            Console.WriteLine(resultString);
        }
        else if (result > 0)
        {
            resultString = "date1 is later than date2.";
            Console.WriteLine(resultString);
        }
        else
        {
            resultString = "date1 is equal to date2.";
            Console.WriteLine(resultString);
        }
        return resultString;
    }
    public static string CompareDates(DateTime date1, DateTime date2)
    {
        string result;
        if (CheckLessor(date1, date2))
        {
            result = "date1 is earlier than date2.";
            Console.WriteLine(result);
        }
        else if (CheckGreater(date1, date2))
        {
            result = "date1 is later than date2.";
            Console.WriteLine(result);
        }
        else
        {
            result = "date1 is equal to date2.";
            Console.WriteLine(result);
        }
        return result;
    }
    public static bool CheckGreater(DateTime date1, DateTime date2)
    {
        return date1 > date2;
    }
    public static bool CheckLessor(DateTime date1, DateTime date2)
    {
        return date1 < date2;
    }
}
class Program
{
    static void Main()
    {
        Console.WriteLine("-----------Iron Software-------------");
        var renderer = new ChromePdfRenderer(); // var pattern
        var content = " <h1> Iron Software is Awesome </h1> Made with IronPDF!";
        content += "<h2>Demo Datetime Objects in C#</h2>";
        // Current date and time
        content += "<h3>Current date and time</h3>";
        DateTime currentDateTime = DateTime.Now;
        content += $"<p>Current date and time: {currentDateTime:U}</p>";
        Console.WriteLine($"Current date and time: {currentDateTime:U}");
        // Specific date and time
        content += "<h3>Specific date and time</h3>";
        DateTime specificDateTime = new DateTime(2024, 3, 16, 10, 30, 0);
        content += $"<p>Specific date and time: {specificDateTime:U}</p>";
        Console.WriteLine($"Specific date and time: {specificDateTime:U}");
        // Date only
        content += "<h3>Date Only</h3>";
        DateTime dateOnly = DateTime.Today;
        content += $"<p>Date only: {dateOnly:U}</p>";
        Console.WriteLine($"Date only: {dateOnly:U}");
        // Date and time in UTC
        content += "<h3>Date and time in UTC</h3>";
        DateTime utcDateTime = DateTime.UtcNow;
        content += $"<p>Date only: {dateOnly:U}</p>";
        Console.WriteLine($"Date only: {dateOnly:U}");
        //Compare dates with Operators
        content += "<h3>Compare dates with Operators</h3>";
        DateTime date1 = DateTime.Now;
        DateTime date2 = DateTime.Now.AddDays(1);
        content += $"<p>Compare date1 {date1:d}, date2 {date2:d}: {CompareDates(date1, date2)}</p>";
        Console.WriteLine($"Compare date1 {date1:U}, date2 {date2:U}: {dateOnly:U}");
        //Compare dates with Compare Method
        content += "<h3>Compare dates with Compare Method</h3>";
        content += $"<p>Compare date1 {date1:d}, date2 {date2:d}: {CompareDatesWithCompare(date1, date2)}</p>";
        Console.WriteLine($"Compare date1 {date1:U}, date2 {date2:U}: {dateOnly:U}");
        var pdf = renderer.RenderHtmlAsPdf(content);
        pdf.SaveAs("outputDate.pdf"); // Saves PDF
    }
    public static string CompareDatesWithCompare(DateTime date1, DateTime date2)
    {
        int result = date1.CompareTo(date2);
        string resultString;
        if (result < 0)
        {
            resultString = "date1 is earlier than date2.";
            Console.WriteLine(resultString);
        }
        else if (result > 0)
        {
            resultString = "date1 is later than date2.";
            Console.WriteLine(resultString);
        }
        else
        {
            resultString = "date1 is equal to date2.";
            Console.WriteLine(resultString);
        }
        return resultString;
    }
    public static string CompareDates(DateTime date1, DateTime date2)
    {
        string result;
        if (CheckLessor(date1, date2))
        {
            result = "date1 is earlier than date2.";
            Console.WriteLine(result);
        }
        else if (CheckGreater(date1, date2))
        {
            result = "date1 is later than date2.";
            Console.WriteLine(result);
        }
        else
        {
            result = "date1 is equal to date2.";
            Console.WriteLine(result);
        }
        return result;
    }
    public static bool CheckGreater(DateTime date1, DateTime date2)
    {
        return date1 > date2;
    }
    public static bool CheckLessor(DateTime date1, DateTime date2)
    {
        return date1 < date2;
    }
}

Die folgende Ausgabe zeigt das mit DateTime-Objekten generierte PDF:

`DateTime`-Objekte in C# (Wie es für Entwickler funktioniert): Abbildung 3

IronPDF Testlizenz

IronPDF. Geben Sie eine E-Mail-ID an, um einen Lizenzschlüssel zu generieren, der dann an die von Ihnen angegebene E-Mail-Adresse gesendet wird.

"IronPDF.LicenseKey": "<Your Key>"
"IronPDF.LicenseKey": "<Your Key>"

Platzieren Sie den Lizenzschlüssel in der Datei AppSettings.Json.

Schlussfolgerung

DateTime-Objekte in C# bieten eine leistungsstarke Möglichkeit, mit Datum und Uhrzeit in .NET-Anwendungen zu arbeiten. Sie bieten eine breite Palette von Funktionen zur Erstellung, Bearbeitung, Formatierung und zum Vergleich von Datums- und Zeitwerten. Das Verständnis dafür, wie DateTime-Objekte effektiv genutzt werden können, ist entscheidend für den Aufbau zuverlässiger und genauer Datums- und Zeitfunktionen in C#-Anwendungen.

Durch die Nutzung der Fähigkeiten von DateTime-Objekten können Entwickler sicherstellen, dass ihre Anwendungen Daten und Zeiten korrekt verarbeiten, unabhängig von den spezifischen Anforderungen oder Szenarien, die sie antreffen.

Ob es um das Berechnen von Dauern, das Planen von Aufgaben oder das Anzeigen von Daten und Uhrzeiten für Benutzer geht, spielen DateTime-Objekte eine entscheidende Rolle in vielen Aspekten der C#-Programmierung im Zusammenhang mit der Verwaltung von Datum und Uhrzeit.

Chipego
Software-Ingenieur
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS
C# Datenstrukturen (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# Tryparse (Wie es für Entwickler funktioniert)