Ist die DateTime-Klasse fehlerhaft?

Jochen Haar 0 Ansehenspunkte
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.
28 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: Sehr hilfreich
  1. Jochen Haar 0 Ansehenspunkte
    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

Antworten können vom Autor der Frage als akzeptierte Antworten gekennzeichnet werden, was Benutzern hilft, die Antwort zu erkennen, die das Problem des Autors gelöst hat.