Wie funktioniert DateTimeOffset befassen sich mit Sommerzeit?

Ich weiß, dass DateTimeOffset speichert ein UTC-Datum/Zeit und einem offset. Ich weiß auch von in diesem MSDN-blog-Eintragdass DateTimeOffset verwendet werden sollte, um "die Arbeit mit der Sommerzeit-Zeiten".

Was ich zu kämpfen, zu verstehen, wie genau DateTimeOffset "Arbeit(s) mit daylight saving times". Mein Verständnis, wenig, was es gibt, ist, dass die Sommerzeit die Zeiten sind eine politische Entscheidung und kann nicht entnommen werden rein einem offset. Wie kann es sein, dass diese Struktur DST-freundlich, wenn es nur speichert ein offset?

Entnehme ich, kann es ein Weg, um die TimeZoneInfo-Klasse in Verbindung mit DateTimeOffset. Wie soll ich das tun?

Schließlich gibt es keine besseren Möglichkeiten, konnte ich Folgendes erreichen?

(Ich habe einige posts von Jon Skeet über Noda-Zeit aber ich nehme an, es ist nicht die Produktion noch fertig und ich weiß nicht, ob es die gute Integration in unsere bestehende Lösung).

Hier ist ein Szenario. Der server ist für unglückliche legacy-Gründen laufen auf UK-Zeit. Wir haben die Kunden ab zu treten-stream aus Australien hat mehrere Zeitzonen. Andere Länder kommen konnte-stream jederzeit.

Wir haben ein scheduler basierend auf der Hardcodet scheduler (DateTimeOffset verwendet). Es funktioniert sehr gut. Jedoch, in unserer Datenbank speichern wir nur genug Daten zum konstruieren eines DateTime-Objekts (siehe unten) und in unserer Unterklassen-und Sanitär-code, die wir benutzen Sie einfach die DateTime -, wie Sie ursprünglich waren wir unterstützen Anwender in Großbritannien nur.

Dieser scheduler ist verantwortlich für die Immobilisierung und Mobilisierung der Anlagen. Es ist daher unerlässlich, dass die geplanten Veranstaltungen, die dem Benutzer DST-eingestellt lokale Zeit.

Der Benutzer einen Zeitplan auf unserer web-site; dies ist aktuell in der Datenbank gespeichert als ein Tag der Woche, Stunde und minute. Wenn das Lesen der Daten erstellen wir ein DateTime-Objekt für den nächsten Treffer an diesem Tag, Stunde und minute. Ich bin frei, zu ändern, die db-Struktur zusätzlich das speichern einer offset-oder Zeitzone.

Wenn das Datum und die Zeit kommt, wird der scheduler sendet den Befehl (und Wiederholungen für eine Weile). Es läuft dann wieder am selben Tag und zur selben Zeit nächste Woche (obwohl der Dienst wird tatsächlich recycelt und der code wird erneut ausgeführt).

ALLES, was ich zu erreichen, ist das brennen von geplanten Veranstaltungen an die lokale Zeitzone angepasst das Datum und die Zeit, die user mit einem scheduler, die Unterklassen von Hardcodet. Wenn DateTimeOffset ist wirklich DST-bewusst, es kann sein, dass alles, was ich zu tun ist, speichern Sie einen offset und ändern Sie unsere Sanitär-code um diese Struktur zu verwenden, aber ich bekomme den Eindruck, dass es nicht so einfach. (Wir können in der Lage sein, um die aktuelle Zeitzone aus der pflanze, GPS-position, aber das ist eine Diskussion für einen anderen Tag :)).

InformationsquelleAutor der Frage Stephen Kennedy | 2011-09-26

Schreibe einen Kommentar