Frage

Vor einiger Zeit habe ich eine zusammengestellt Zeit Basierte Bibliothek, die für jemanden für jemanden in relative Zeiten verwendet werden kann. Ich bemerkte damals, dass es die Einstunde in beide Richtungen für Tageslichteinsparungen machte. Mir ist das einfach eingefallen, das Der Kongress veränderte die Sommerzeitregeln für Tageslicht. Ich erinnere mich nicht daran, Informationen über Updates zu sehen, um die Änderung der Algorithmen zu beheben. Hat jemand Informationen zu diesem Thema?

War es hilfreich?

Lösung

Die meisten Unix-ähnlichen Systeme verwenden die Olson TZ-Datenbank für ihre Zeitzone-Informationen:

http://www.twinsun.com/tz/tz-link.htm

Die Änderungen an den US -amerikanischen Zeitzone -Regeln wurden in der Version 2005l der TZ -Datenbank implementiert.

Andere Tipps

Für Visual Studio 2005 und früher hat Microsoft aktualisierte Versionen der C -Laufzeitbibliotheken veröffentlicht. Weitere Informationen finden Sie hier.

An welcher Plattform arbeiten Sie?

Da der Kongress die Regeln für die ganze Welt nicht festgelegt hat :) Es gab einen Mechanismus, um die Regeln für Unix/Linux seit langem flexibel anzugeben

Siehe zum Beispiel, http://www.manpagez.com/man/8/zic/ Für das Format der Dateien. Ihr bestimmtes System benötigt möglicherweise eine aktualisierte Definition für die neuen Regeln (wenn die Verteilung noch nicht damit umgegangen ist)

Bei Windows erstellen MS in einigen Regeln und veröffentlichen Sie Updates, wenn sich die Dinge ändern.

Für MacOS habe ich keine Ahnung, aber ich stelle mir vor, dass es die Unix -Art erbt, Dinge zu tun.

In all diesen Fällen sollte jedoch keine Änderung der C -Bibliothek erforderlich sein

Im Allgemeinen verwendet die C -Laufzeit interne Datendateien, um von der internen Zeitdarstellung in das Gebietsschema des Benutzers abzubilden. Diese Zuordnungen werden regelmäßig von den jeweiligen Anbietern aktualisiert, um die aktuellen Gesetze zu entsprechen.

Da interne Uhren auf UTC eingestellt werden sollten, ist die Sparzeit bei Tageslicht nur eine Frage der Änderung von Zeitzone. Zum Beispiel wechselte mein Mac in meinem Gebietsschema am 26. Oktober von CEST (mitteleuropäische Sommerzeit) zu dem „normalen“ CET (mitteleuropäische Zeit). Das Display meiner Uhr änderte sich, aber nicht die Zeit des Computers.

http://www.timeanddate.com/library/abbreviations/timezones/eu/cest.html

Dies bedeutet in der Tat, Sie müssen Ihre datetime -Variablen entweder in UTC oder in einem nativen Format beibehalten, das die Zeitzone berücksichtigt. Deshalb ist es ein Fehler, der darauf wartet, dass es eine "yyyymmddhhmmss" -Skette aufzeichnet, die darauf wartet, zu passieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top