English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Datum und Zeit (DateTime)

C# enthält die Struktur DateTime, um Datum und Uhrzeit zu verarbeiten.

要在C#中使用日期和时间,请使用 new 关键字创建 DateTime 结构的对象。下面创建一个具有默认值的 DateTime 对象。

DateTime dt = new DateTime(); // 分配默认值 01/01/0001 00:00:00

DateTime 对象的默认值和最小值是0001年1月1日00:00:00(午夜)。最大值可以是9999年12月31日晚上11:59:59

使用 DateTime 结构的不同构造函数为 DateTime 对象分配初始值。

//分配默认值01/01/0001 00:00:00
DateTime dt1 = new DateTime(); 
//分配年,月,日
DateTime dt2 = new DateTime(2015, 12, 31); 
//分配年,月,日, hour, min, seconds
DateTime dt3 = new DateTime(2015, 12, 31, 5, 10, 20);
 
//分配年,月,日, hour, min, seconds, UTC timezone
DateTime dt4 = new DateTime(2015, 12, 31, 5, 10, 20, DateTimeKind.Utc);

在上面的示例中,我们在构造函数中指定了年,月和日。年份可以是0001到9999,月份可以是1到12,日期可以是1到31。超出这些范围设置任何其他值都将导致运行时异常。

DateTime dt = new DateTime(2015, 12, 32); //引发异常:天超出范围

使用不同的 DateTime 构造函数来设置日期、时间、时区、日历和区域性。

Ticks

Ticks是一个日期和时间,以自格里高利历00:00:00.000年1月1日以来的100纳秒间隔数表示。下面用刻度数初始化DateTime对象。

DateTime dt = new DateTime(636370000000000000); 
DateTime.MinValue.Ticks;  //ticks 最小值
DateTime.MaxValue.Ticks; // ticks 最大值

DateTime 静态字段

DateTime结构包括静态字段,属性和方法。下面的示例演示重要的静态字段和属性。

DateTime currentDateTime = DateTime.Now;  //返回当前日期和时间
DateTime todaysDate = DateTime.Today; // 返回今天的日期
DateTime currentDateTimeUTC = DateTime.UtcNow;// 返回当前UTC日期和时间
DateTime maxDateTimeValue = DateTime.MaxValue; // 返回DateTime的最大值
DateTime minDateTimeValue = DateTime.MinValue; // Gibt den kleinsten Wert von DateTime zurück

Zeitspanne(TimeSpan)

TimeSpan ist eine Struktur, die zur Darstellung von Zeit in Tagen, Stunden, Minuten, Sekunden und Millisekunden verwendet wird.

DateTime dt = new DateTime(2015, 12, 31);
           
TimeSpan ts = new TimeSpan(25,20,55);
 
DateTime newDate = dt.Add(ts);
Console.WriteLine(newDate);//1/1/2016 1:20:55 AM

Der Abzug von zwei Daten ergibt einen TimeSpan.

DateTime dt1 = new DateTime(2015, 12, 31); 
DateTime dt2 = new DateTime(2016, 2, 2);
TimeSpan result = dt2.Subtract(dt1);//33.00:00:00

Operatoren

DateTime-Struktur überschreibt+,-,==!=,>,<,<=,>= Operatoren, vereinfachen die Addition, Subtraktion und Vergleiche von Daten. Dies erleichtert die Verarbeitung von Daten.

DateTime dt1 = new DateTime(2015, 12, 20);
DateTime dt2 = new DateTime(2016, 12, 31, 5, 10, 20); 
TimeSpan time = new TimeSpan(10, 5, 25, 50);
Console.WriteLine(dt2 + time); // 1/10/2017Vormittag10:36:10
Console.WriteLine(dt2 - dt1); //377.05:10:20
Console.WriteLine(dt1 == dt2); //False
Console.WriteLine(dt1 != dt2); //True
Console.WriteLine(dt1 > dt2); //False
Console.WriteLine(dt1 < dt2); //True
Console.WriteLine(dt1 >= dt2); //False
Console.WriteLine(dt1 <= dt2);//True

Datum DateTime in String umwandeln

Die DateTime-Struktur enthält folgende Methoden, um Datum und Uhrzeit in Zeichenfolgen umzuwandeln.

MethodeBeschreibung
ToString

Konvertieren Sie den DateTime-Wert in eine Zeichenfolge im angegebenen Format im aktuellen regionalen Zeitbereich.

ToShortDateString

Konvertieren Sie den DateTime-Wert in eine kurze Datumszeichenfolge im aktuellen regionalen Zeitbereich (M/d/yyyy-Modus).

ToShortTimeString

Konvertieren Sie den DateTime-Wert in eine kurze Zeitzeichenfolge im aktuellen regionalen Zeitbereich (h: mm: ss-Modus).

ToLongDateString

Konvertieren Sie den DateTime-Wert in eine lange Datumszeichenfolge im aktuellen regionalen Zeitbereich (dddd, MMMM d, yyyy-Modus).

ToLongTimeString

Konvertieren Sie den DateTime-Wert in eine lange Zeitzeichenfolge im aktuellen Zeitbereich (h:mm:ss tt-Modus).

Das folgende Beispiel zeigt, wie man DateTime in verschiedene Formatzeichenfolgen umwandelt.

var dt = DateTime.Now;
Console.WriteLine("Datumssprache Current Culture: ")); + dt.ToString("d"));
Console.WriteLine("MM/dd/yyyy Format: ")); + dt.ToString("MM/dd/yyyy"));
Console.WriteLine("dddd, dd MMMM yyyy Format: ")); + dt.ToString("dddd, dd MMMM yyyy"));
Console.WriteLine("MM/dd/yyyy h:mm tt Format: ")); + dt.ToString("MM/dd/yyyy h:mm tt"));
Console.WriteLine("MMMM dd Format: ")); + dt.ToString("MMMM dd"));
Console.WriteLine("HH:mm:ss Format: ")); + dt.ToString("HH:mm:ss"));
Console.WriteLine("hh:mm tt Format: ")); + dt.ToString("hh:mm tt"));
Console.WriteLine("Kurzzeitsprache: ")); + dt.ToShortDateString());
Console.WriteLine("Langzeitsprache: ")); + dt.ToLongDateString());
Console.WriteLine("Kurzzeitsprache: ")); + dt.ToShortTimeString());
Console.WriteLine("Langzeitsprache: ")); + dt.ToLongTimeString());

Konvertieren Sie den String in DateTime

Die Methoden Parse (), ParseExact (), TryParse () und TryParseExact () können verwendet werden, um gültige Datum- und Uhrzeitzeichenketten in ein DateTime-Objekt zu konvertieren.

Wenn die angegebene Zeichenkette keine gültige Darstellung von Datum und Uhrzeit ist, wirft die Methode Parse () und ParseExact () eine Ausnahme. Daher wird empfohlen, die Methoden TryParse () oder TryParseExact () zu verwenden, da sie bei ungültigen Zeichenketten false zurückgeben.

var str = "5/12/2020";
DateTime dt;
            
var isValidDate = DateTime.TryParse(str, out dt);
if(isValidDate)
    Console.WriteLine(dt);
else
    Console.WriteLine($"{str} ist keine gültige Datumssitzung");