Sekunden seit der Epoch
(aphyr.com)-
Sekunden seit der Epoch
-
POSIX-Zeit oder Unix-Zeit wird gemeinhin als die Anzahl der Sekunden seit dem 1. Januar 1970, 00:00:00 beschrieben. Das ist jedoch nicht ganz korrekt. Zum Beispiel ist die POSIX-Zeit für den 25. Dezember 2024, 18:54:53 UTC, 1735152686 und liegt damit um 29 Sekunden unter den tatsächlich verstrichenen 1735152715 Sekunden.
-
POSIX-Zeit ist in IEEE 1003.1 von der koordinierten Weltzeit (UTC) abgeleitet. Der Standard nimmt an, dass jeder Tag genau 86.400 Sekunden hat. Tatsächlich ist ein Tag aber nicht 86.400 Sekunden lang, und seine Länge verändert sich im Laufe der Zeit. Um das auszugleichen, deklarieren Astronomen periodisch Schaltsekunden in UTC.
-
-
Archäologie
-
Anhang B von IEEE 1003 enthält eine interessante Diskussion über Schaltsekunden. Als der Standard veröffentlicht wurde, waren seit dem 1. Januar 1970 14 Schaltsekunden hinzugefügt worden. Diese Schaltsekunden werden ignoriert, um Zeitdifferenzen leichter berechnen zu können.
-
Die meisten Systeme behandeln Zeit als einen kontinuierlich ansteigenden Wert. Die meisten Systeme verfolgen jedoch keine Schaltsekunden und sind nicht mit einer standardisierten Zeitreferenz synchronisiert. Daher ist die Forderung unangebracht, dass Sekunden seit der Epoch die Sekunden zwischen der referenzierten Zeit und der Epoch exakt darstellen müssen.
-
Eine konsistente Interpretation der Sekunden seit der Epoch kann für bestimmte Arten verteilter Anwendungen wichtig sein. Die Anhäufung von Schaltsekunden ist nicht vorhersagbar, und die Anzahl der Schaltsekunden seit der Epoch wird wahrscheinlich weiter steigen.
-
-
Was man stattdessen tun sollte
-
Um die Dauer zwischen zwei Ereignissen auf einem einzelnen Computer zu berechnen, sollte
CLOCK_MONOTONICverwendet werden. Wenn keine POSIX-Zeiten mit anderen Systemen ausgetauscht werden müssen, können TAI, GPS oder LORAN verwendet werden. -
Wenn eine ungefähre Ausrichtung an einem POSIX-Timestamp-System erforderlich ist, können Schaltsekunden über ein längeres Zeitfenster verteilt werden. Bibliotheken wie
qntmst-a-iunterstützen die Umwandlung zwischen POSIX und TAI. -
Es laufen Bemühungen, Schaltsekunden abzuschaffen, und man hofft, dies bis 2035 abzuschließen. Das würde zusätzliche Arbeit erfordern, um Umrechnungstabellen für alles zu erstellen, das die Annahme „ein Tag hat 86.400 Sekunden“ verwendet, aber die Frage nach den Sekunden zwischen zwei Zeitpunkten würde einfacher werden. Zumindest für Zeiten nach 2035.
-
1 Kommentare
Hacker-News-Kommentare
Ich habe das SF-Buch "A Deepness in the Sky" gelesen. Die Erwähnung von Sekunden seit der Epoche im Buch fand ich interessant.
Es gibt Bestrebungen, Schaltsekunden abzuschaffen, und man hofft, dies bis 2035 abzuschließen.
Die moderne "UTC-Epoche" ist der 1. Januar 1972.
Jedes Mal, wenn ich etwas über Zeitmessung lese, lerne ich etwas Neues.
Ich habe kürzlich an Code für eine VAX oder für Code gearbeitet, der auf OpenVMS läuft, und dort zum ersten Mal gesehen, dass die Epoche der 17. November 1858 ist.
Einige Zeitpunkte lassen sich nicht als POSIX-Zeitstempel darstellen, und einige POSIX-Zeitstempel entsprechen keiner realen Zeit.
Ich finde, dieser Artikel hat mir Weihnachten verdorben.
Beim Speichern von Datumswerten in einer Datenbank speichere ich sie immer als Unix-Epochenzeit, und Informationen zur Zeitzone speichere ich separat.
Vor etwa zehn Jahren habe ich auf einer Konferenz gehört, dass Google keine Schaltsekunden verwendet, sondern sie auf reguläre Sekunden verteilt.
Ich frage mich, ob es eine Zeitmessungsmethode gibt, die synchronisiert ist und monoton ansteigt.