Sommerzeit: 02:00 - 03:00 mehrdeutig

26/03/2008 - 16:45 von Armin Zingler | Report spam
Hallo,

am 28.10.2007 um 03:00 wurden die Uhren um eine Stunde zurückgestellt
(von 3 auf 2 Uhr). Dadurch gibt es z.B. die Uhrzeit 02:30 zweifach;
einmal in der Sommerzeit und einmal in der (normalen) Winterzeit.

Wenn ich schreibe:

Dim d As New Date(2007, 10, 28, 2, 30, 0, DateTimeKind.Local)

ergibt d.IsDaylightSavingTime = False. Woher weiß denn der Konstruktor
_welches_ 02:30 ich meine? Ist ja mehrdeutig. Auch wenn es nur eine
Stunde im Jahr betrifft, irgendwo müsste ich das doch angeben können.
Meine, das schon mal gefragt zu haben, find's aber nicht.

Genauso müsste

Dim d As New Date(2007, 3, 25, 2, 30, 0, DateTimeKind.Local)

zu einer Exception führen, denn diese Uhrzeit gibt es gar nicht.

Oder?


Armin
 

Lesen sie die antworten

#1 Thomas Scheidegger
26/03/2008 - 17:08 | Warnen spam
Hallo Armin

Dadurch gibt es z.B. die Uhrzeit 02:30 zweifach;
einmal in der Sommerzeit und einmal in der (normalen) Winterzeit.
Dim d As New Date(2007, 10, 28, 2, 30, 0, DateTimeKind.Local)
Woher weiß denn der Konstruktor _welches_ 02:30 ich meine?




der DateTime Typ kennt (ab 2.0) nur Unterschied Lokal/UTC (DateTimeKind),
aber nicht Sommer/Winterzeit.
Es kann also keine Lösung geben.

In .NET 3.5 ist neu TimeZoneInfo + DateTimeOffset,
http://msdn2.microsoft.com/de-de/li...60642.aspx

da ist der mehrdeutige Fall beschrieben.




Thomas Scheidegger - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/

Ähnliche fragen