Ich möchte die aktuellen Zeitunterschiede zwischen US / Central Zeitzone und British Summer Time berechnen. Ich meine, momentan haben diese beiden Zeitzonen eine Sommerzeiteinsparung, also haben sie einen Zeitunterschied von 6 Stunden. Aber nach Sonntag, dem 31. Oktober 2010, wird die Sommerzeit für die Sommerzeit ausbleiben. Zu diesem Zeitpunkt wird es 5 Stunden Zeitunterschied zwischen diesen beiden Zeitzonen geben.
Gibt es eine Möglichkeit, diese unterschiedlichen Zeitunterschiede zu berechnen?
Sie können zwei Datetime-Objekte aus verschiedenen Zeitzonen erstellen, ein gutes Beispiel: Erstellen einer DateTime in einer bestimmten Zeitzone in c # fx 3.5
Und berechnen Sie das Delta zwischen ihnen.
Am hat die richtige Antwort, die meistens funktioniert, wenn Sie sich auf das aktuelle Datum beschränken. Im Allgemeinen, je nachdem, wie korrekt Sie sein wollen, kann es ziemlich schwierig sein. Dies liegt daran, dass die Sommerzeit in einer Zeitzone ab heute anders sein kann als in der Geschichte. Vielleicht vor dem 1. April 1950 gab es keine britische Sommerzeit. Oder während der Olympischen Spiele in Sydney wurden die DST-Daten im Jahr 2000 vorübergehend geändert. Um all diese Dinge zu berücksichtigen, benötigen Sie eine historische DST / TimeZone-Datenbank.
Die Dokumentation für TimeZoneInfo.GetUtcOffset enthält ein Beispiel, das die Berechnung des UTC-Offsets für verschiedene Zeitzonen zu verschiedenen Zeiten zeigt. Sie müssen nur den UTC-Offset für die jeweilige Zeit für jede Ihrer beiden Zeitzonen ermitteln und die Differenz berechnen. Siehe: