it-swarm.com.de

Warum ist der 1.1.1970 die "Epochenzeit"?

Warum ist

1. Januar 1970 00:00:00

betrachtete die Epochenzeit ?

420
rahul

Frühere Versionen von Unix haben die Systemzeit in 1/60 s-Intervallen gemessen. Dies bedeutet, dass eine vorzeichenlose 32-Bit-Ganzzahl nur eine Zeitspanne von weniger als 829 Tagen darstellen kann. Aus diesem Grund musste die durch die Zahl 0 (als Epoch) bezeichnete Zeit in der jüngsten Vergangenheit eingestellt werden. Da dies in den frühen 70er Jahren der Fall war, wurde die Epoche auf 1971-1-1 gesetzt.

Später wurde die Systemzeit geändert, um jede Sekunde zu inkrementieren. Dadurch wurde die Zeitspanne, die durch eine vorzeichenlose 32-Bit-Ganzzahl dargestellt werden konnte, auf rund 136 Jahre erhöht. Da es nicht mehr so ​​wichtig war, jede Sekunde aus der Theke zu drücken, wurde die Epoche auf das nächste Jahrzehnt abgerundet und wurde 1970-1-1. Man muss davon ausgehen, dass dies als ein wenig sauberer als 1971-1-1 galt.

Beachten Sie, dass eine 32-Bit-Ganzzahl {mit Vorzeichen, die 1970-1-1 als Epoche verwendet, Datumsangaben bis 2038-1-19 darstellen kann. 13.

396
Matt Howells

Geschichte .

Die früheste Version von Unix hatte eine 32-Bit-Ganzzahl, die um eine .__ erhöht wird. Rate von 60 Hz, was die Rate von .__ war. die Systemuhr auf der Hardware von die frühen Unix-Systeme. Der Wert 60 Hz wird in manchen Programmen immer noch angezeigt Schnittstellen als Ergebnis. Die Epoche auch unterschied sich vom aktuellen Wert. Die Erstausgabe Unix-Programmierhandbuch vom 3. November 1971 definiert die Unix-Zeit als "die Zeit seit 00:00:00, 1. Januar 1971, gemessen in Sechzigsteln von .__ einer Sekunde".

47
Stu Thompson

http://en.wikipedia.org/wiki/Unix_time#History erklärt etwas über die Ursprünge der Unix-Zeit und die gewählte Epoche. Die Definition der Unix-Zeit und des Epochen-Datums durchliefen einige Änderungen, bevor sie sich auf dem Stand der Dinge stabilisierten.

Es wird jedoch nicht gesagt, warum genau 1/1/1970 am Ende gewählt wurde.

Bemerkenswerte Ausschnitte aus der Wikipedia-Seite:

Das first edition Unix Programmer's Manual vom 3. November 1971 definiert die Unix-Zeit als "die Zeit seit 00:00:00, 1. Januar, 1971, gemessen in Sechzigstelsekunden".

Aufgrund [des] begrenzten Bereichs wurde die Epoche mehr als einmal neu definiert, bevor die Rate auf 1 Hz geändert wurde und die Epoche auf ihren aktuellen Wert gesetzt wurde.

Einige spätere Probleme, einschließlich der Komplexität der vorliegenden Definition, resultieren daraus, dass die Unix-Zeit nach und nach durch die Nutzung definiert wurde und nicht erst vollständig definiert wurde.

8
Dawie Strauss

Bezugsdatum der Epoche

Ein Epochenreferenzdatum ist ein Punkt auf der Zeitachse, ab dem die Zeit gezählt wird. Momente vor diesem Punkt werden mit einer negativen Zahl gezählt, Momente danach mit einer positiven Zahl.

Viele Epochen im Einsatz

Warum wird der 1. Januar 1970 00:00:00 als Epochenzeit angesehen?

Nein, nicht die Epoche, eine Epoche. Es werden viele Epochen verwendet .

Diese Wahl der Epoche ist willkürlich .

Wichtige Computersysteme und Bibliotheken verwenden mindestens ein Dutzend verschiedener Epochen . Eine der beliebtesten Epochen ist allgemein als Unix-Zeit bekannt, wobei der von Ihnen erwähnte Moment von 1970 UTC verwendet wird.

Unix Time 1970 ist zwar beliebt, aber möglicherweise nicht das most. Ebenfalls am häufigsten wird der 0. Januar 1900 für unzählige Microsoft Excel- und Lotus 1-2-3-Tabellen oder der 1. Januar 2001 für Apples Cocoa-Framework in über einer Milliarde iOS/macOS-Maschinen weltweit in unzähligen Apps eingesetzt. Oder vielleicht am 6. Januar 1980 von [~ # ~] gps [~ # ~] Geräten verwendet?

Viele Körnigkeiten

Unterschiedliche Systeme verwenden unterschiedliche Granularität bei der Zeitzählung.

Sogar die sogenannte „Unix-Zeit“ variiert, wobei manche Systeme ganze Sekunden und manche Millisekunden zählen . Viele Datenbanken wie Postgres verwenden Mikrosekunden . Einige, wie das moderne Java.time Framework in Java 8 und höher, verwenden Nanosekunden verwende noch andere Körnigkeiten.

ISO 8601

Da die Verwendung einer Epochenreferenz und die Granularitäten sehr unterschiedlich sind, ist es im Allgemeinen am besten, die Kommunikation von Momenten als Zählung von Epochen zu vermeiden. Verwenden Sie zwischen der Ambiguität von Epoche und Granularität sowie der Unfähigkeit des Menschen, sinnvolle Werte wahrzunehmen (und daher fehlerhafte Werte zu übersehen), einfachen Text anstelle von Zahlen.

Die Norm ISO 8601 bietet eine umfangreiche Reihe praktischer, gut gestalteter Formate zum Ausdrücken von Datums- und Uhrzeitwerten als Text. Diese Formate können sowohl maschinell analysiert als auch kulturübergreifend von Menschen leicht gelesen werden.

Diese schließen ein:

2
Basil Bourque