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 für Unternehmen | Windows-Client für IT-Profis | Benutzerfreundlichkeit | Andere
Entwicklertechnologien | C#
Entwicklertechnologien | C#

Eine objektorientierte und typsichere Programmiersprache, die ihre Wurzeln in der C-Sprachenfamilie hat und die komponentenorientierte Programmierung unterstützt


1 Antwort

Sortieren nach: Neueste
  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?

    War diese Antwort hilfreich?


Ihre Antwort

Antworten können von Fragestellenden als „Angenommen“ und von Moderierenden als „Empfohlen“ gekennzeichnet werden, wodurch Benutzende wissen, dass diese Antwort das Problem des Fragestellenden gelöst hat.