DateTime.ToLocalTime() im winter/Sommer Zeit

Ich bin mit DateTime.ToLocalTime() zu konvertieren, Daten von UTC in die lokale Zeit. Meine Zeitzone ist GMT+1(Belgrad, Budapest, Lubjna...), es ist richtig eingestellt in den Einstellungen von Windows (XP).

Letztes Wochenende in unserer Zeitzone wechselten wir auf den winter-auf Sommerzeit, das bedeutet, wir legen zurück, die lokale Zeit um eine Stunde.

So wie ich das sehe ToLocalTime Methode verhält sich merkwürdig aus, dass moment. Wenn ich es verwenden, um konvertieren von Datumsangaben, die sind nach diesem winter mal ändern, es funktioniert großartig, wie diese:

var utcDate2 = new DateTime(2011, 11, 2, 9, 0, 0,DateTimeKind.Utc);

utcDate1.ToLocalTime() Wert ist: 2011.11.02. 10:00:00 es ist richtig

Burt, wenn ich will, um zu konvertieren ein Datum vor dieser änderung (z.B. Datum, ab Sommer) es gibt wieder einen schlechten Wert wie diese:

var utcDate1 = new DateTime(2011, 10, 23, 9, 0, 0,DateTimeKind.Utc);

utcDate2.ToLocalTime() Wert ist: 2011.10.23. 10:00:00 es ist falsch, Es sollte 2011.10.23. 11:00:00

Was muss ich tun, um die richtigen Werte? Wie soll ich ToLocalTime, dass auch einstellen winter - /Sommerzeit?

  • Es ist überhaupt nicht klar, was falsch ist - Sie haben gezeigt, dass die Schaffung von zwei UTC-Datum und Zeiten, aber nicht, was passiert, wenn Sie Sie konvertieren, um die lokale Zeit. Bitte geben Sie eine kurze, aber vollständige Programm, das das problem veranschaulicht.
  • Sorry Leute, ich aktualisiert, einige Strg+c, Strg+v problem
  • Es gibt einen Unterschied von 7 Tagen zwischen Ihrem zwei Beispiele. Was genau Fragen Sie? Da haben Sie schon angepasst, Ihre lokalen Uhren müssen Sie die lokale Zeit ein. Ich glaube nicht, dass ist UTC Sommerzeit bewusst, es ist ein DST-version, die Sie möglicherweise nutzen möchten, je nachdem, ob Sommerzeit angewendet werden soll, die lokal oder nicht. Dein zweites Beispiel ist eigentlich korrekt nach den aktuellen DST-Regeln, die auf Ihrem computer.
  • Sie wollen bestimmen, was die lokalen datetime gewesen wäre, an einem Punkt vor des Tages Licht die Einsparungen wie shift. Das problem ist die Bibliothek nur wird die Verschiebung mit der aktuellen Regeln im Affekt "HEUTE"...
  • Ramhound, erste date im Sommer Zeit des Jahres, der zweite im winter Zeit des Jahres.
  • Beachten Sie, dass es einen Unterschied zwischen den aktuellen Regeln und den aktuellen Stand. Die Bibliothek verwendet die aktuellen Regeln, aber es nutzt der Staat das Datum, das Sie konvertieren.

InformationsquelleAutor Tom | 2011-11-02
Schreibe einen Kommentar