Ist die DateTime-Klasse fehlerhaft?

Jochen Haar 0 Zuverlässigkeitspunkte
2024-10-29T08:36:36.82+00:00

Der folgende C#-Code soll das Problem mit der Funktion: ToLocalTime() verdeutlichen:

        DateTime dt1 = new DateTime(2024, 8, 1);  // Sommerzeit

        DateTime.SpecifyKind(dt1, DateTimeKind.Utc);

        string utc1 = dt1.ToString();

        string local1 = dt1.ToLocalTime().ToString();

        Console.WriteLine($@"utc1  : {utc1}");

        Console.WriteLine($@"local1: {local1} ==> wrong on the {DateTime.Now}");
```Ausgabe:

utc1  : 01.08.2024 00:00:00

local1: 01.08.2024 02:00:00 ==> wrong on the 29.10.2024 08:08:23

```vba
        DateTime dt2 = new DateTime(2024, 12, 1);  // Winterzeit

        DateTime.SpecifyKind(dt2, DateTimeKind.Utc);

        string utc2 = dt2.ToString();

        string local2 = dt2.ToLocalTime().ToString();

        Console.WriteLine($@"utc2  : {utc2}");

        Console.WriteLine($@"local2: {local2} ==> correct on the {DateTime.Now}");
```Ausgabe:

utc2  : 01.12.2024 00:00:00

local2: 01.12.2024 01:00:00 ==> correct on the 29.10.2024 08:08:23
Windows 10
Windows 10
Ein Microsoft-Betriebssystem, das auf PCs und Tablets ausgeführt wird.
31 Fragen
C#
C#
Eine objektorientierte und typsichere Programmiersprache, die ihre Wurzeln in der C-Sprachenfamilie hat und die komponentenorientierte Programmierung unterstützt
15 Fragen
{count} Stimmen

1 Antwort

Sortieren nach: Am hilfreichsten
  1. Jochen Haar 0 Zuverlässigkeitspunkte
    2024-10-29T11:14:06.4933333+00:00

    Ich würde in beiden Fällen 01.12.2024 01:00:00 erwarten, da die lokale Zeit immer UTC+1h ist und zwar egal ob Sommerzeit oder Winterzeit.

    Was verstehe ich hier falsch?


Ihre Antwort

Fragesteller*innen können Antworten als akzeptierte Antworten markiert werden, wodurch Benutzer*innen wissen, dass diese Antwort das Problem gelöst hat.