Warum werden Daten ab dem 1. Januar 1970 berechnet? [duplicate]

Lesezeit: 6 Minuten

Benutzer-Avatar
Vijay Shanker Dubey

Gibt es einen Grund, das Datum (1. Januar 1970) als Standardstandard für die Zeitmanipulation zu verwenden? Ich habe diesen Standard sowohl in Java als auch in Python gesehen. Diese beiden Sprachen sind mir bekannt. Gibt es andere populäre Sprachen, die dem gleichen Standard folgen?

Bitte beschreiben.

  • Eine andere beliebte Sprache, die dem gleichen Standard folgt, ist PHP, ein ziemlich häufiger Startpunkt.

    – Gregor K

    28. März 2010 um 16:37 Uhr

  • Warum ist der 1.1.1970 die “Epochenzeit”?, Warum beginnt die Unix-Zeit am 1.1.1970?

    – phuklv

    3. März 2019 um 10:11 Uhr

Benutzer-Avatar
Basil Bourque

Verwenden des Datums (1. Januar 1970) als Standardstandard

Die Frage geht von zwei falschen Annahmen aus:

  • Die gesamte Zeiterfassung in der Computertechnik erfolgt als Zählung seit 1970.
  • Ein solches Tracking ist Standard.

Zwei Dutzend Epochen

Zeit im Rechnen ist nicht immer seit Anfang 1970 verfolgt koordinierte Weltzeit. Dabei Epoche Referenz beliebt ist, haben verschiedene Computerumgebungen im Laufe der Jahrzehnte zumindest annähernd verwendet zwei Dutzend Epochen. Einige stammen aus anderen Jahrhunderten. Sie reichen von Jahr 0 (Null) bis 2001.

Hier sind ein paar.

0. Januar 1 v

1. Januar, 1. n. Chr

15. Oktober 1582

1. Januar 1601

31. Dezember 1840

17. November 1858

30. Dezember 1899

31. Dezember 1899

1. Januar 1900

1. Januar 1904

31. Dezember 1967

1. Januar 1980

6. Januar 1980

1. Januar 2000

1. Januar 2001

Unix-Epoche verbreitet, aber nicht dominant

Der Anfang 1970 ist beliebt, wahrscheinlich wegen seiner Verwendung durch Unix. Aber das ist keineswegs dominant. Zum Beispiel:

ISO 8601

Die Annahme, dass eine Count-sinte-Epoche die Unix-Epoche verwendet, öffnet eine große Schwachstelle für Fehler. Eine solche Zählung ist für einen Menschen unmöglich sofort zu entschlüsseln, sodass Fehler oder Probleme beim Debuggen und Protokollieren nicht einfach gekennzeichnet werden. Ein weiteres Problem ist die unten erläuterte Mehrdeutigkeit der Granularität.

Ich empfehle dringend, stattdessen Datums- und Uhrzeitwerte als eindeutig zu serialisieren ISO 8601 Strings für den Datenaustausch anstelle einer ganzzahligen count-since-Epoche: YYYY-MM-DDTHH:MM:SS.SSSZ wie zum Beispiel 2014-10-14T16:32:41.018Z.

Graf von Was Seit Epoche

Ein weiteres Problem bei der Count-seit-Epochen-Zeitverfolgung ist die Zeiteinheit, wobei üblicherweise mindestens vier Auflösungsstufen verwendet werden.

  • Sekunden
    Die ursprünglichen Unix-Einrichtungen verbrauchten ganze Sekunden, was zu dem führte Jahr 2038 Problem wenn wir die Grenze von Sekunden seit 1970 erreichen, wenn sie als 32-Bit-Ganzzahl gespeichert werden.
  • Millisekunden
    Wird von älteren Java-Bibliotheken verwendet, einschließlich der gebündelten java.util.Date-Klasse und der Joda-Zeit Bibliothek.
  • Mikrosekunden
    Verwendet von Datenbanken wie z Postgres.
  • Nanosekunden
    Gebraucht durch das Neue java.time-Paket bei Java8.

Diagramm, das verschiedene Softwarezählungen von Epochen nach Sekunden, Millisekunden, Mikrosekunden oder Nanosekunden zeigt.

  • Ich frage mich, was in diesem Moment die vorherrschende Epoche ist… hast du sie auf Daten gestützt?

    – PascalVKooten

    2. September 2018 um 21:24 Uhr

  • @PascalVKooten Viele verschiedene Epochen werden in vielen verschiedenen Umgebungen und Softwaresystemen verwendet. Es gibt also keine dominante Epoche. Mein Punkt hier ist, niemals die Epoche anzunehmen. Kennen Sie Ihre Datenquelle. Der beste Ansatz besteht darin, dass eine Datenquelle das Epochenproblem vollständig vermeidet und meiner Meinung nach nur ISO 8601-Zeichenfolgen verwendet.

    – Basilikum Bourque

    3. September 2018 um 0:20 Uhr


  • Danke für deine Antwort. Ich verstehe, dass es viele gibt, aber ich bin neugierig zu wissen, ob zB POSIX im Laufe der Zeit populärer wurde.

    – PascalVKooten

    3. September 2018 um 8:14 Uhr

  • Das ist interessant und beantwortet so gut wie nicht, warum 1970 als Unix-Epoche gewählt wurde.

    – Unbekannt0059

    8. November 2020 um 0:36 Uhr

Es ist der Standard von Unix-Zeit.

Die Unix-Zeit oder POSIX-Zeit ist ein System zur Beschreibung von Zeitpunkten, definiert als die Anzahl der Sekunden, die seit Mitternacht proleptischer koordinierter Weltzeit (UTC) vom 1. Januar 1970 vergangen sind, Schaltsekunden nicht mitgezählt.

  • Wissen Sie, ob Kernighan und Thompson jeweils einen Grund dafür angegeben haben, diesen Moment jenseits von “Es ist eine runde Zahl, kurz bevor wir mit dem Bau des Dings begonnen haben” zu wählen?

    – dmckee — Ex-Moderator-Kätzchen

    28. März 2010 um 17:03 Uhr

  • Es ist der Beginn eines Jahres, es ist in der Zeitzone Null (Zulu). Beide machen den Datumsformatierungscode einfacher.

    – Donal Fellows

    28. März 2010 um 17:48 Uhr

  • Zählt keine Schaltsekunden? Ich kannte dieses Detail nicht. Nachdem ich ein paar Augenblicke darüber nachgedacht habe, kann ich verstehen, warum du es so machst, aber Mann. Meine Welt ist zerstört. um 24 Sekunden.

    – zurück

    28. März 2010 um 19:08 Uhr

warum es immer der 1. Januar 1970 ist, weil – “1. Januar 1970”, normalerweise als “Epochendatum” bezeichnet, das Datum ist, an dem die Zeit für Unix-Computer begann, und dieser Zeitstempel als “0” gekennzeichnet ist. Jede Zeit seit diesem Datum wird basierend auf der Anzahl der verstrichenen Sekunden berechnet. Einfacher gesagt … der Zeitstempel jedes Datums ist ein Unterschied in Sekunden zwischen diesem Datum und dem ‘1. Januar 1970’. Der Zeitstempel ist nur eine ganze Zahl, die bei ‘0’ am ‘Mitternacht des 1. Januar 1970’ begann und sich weiter erhöht um ‘1’ bei jedem zweiten Durchlauf Für die Umwandlung von UNIX-Zeitstempeln in lesbare Daten stellen PHP und andere Open-Source-Sprachen eingebaute Funktionen bereit.

  • Warum werden Daten ab dem 1. Januar 1970 berechnet? Weil Daten ab dem 1. Januar 1970 berechnet werden. Dies ist eine zirkuläre Logik, die nichts beantwortet.

    – Unbekannt0059

    8. November 2020 um 0:35 Uhr

Benutzer-Avatar
S. Lott

Gibt es einen Grund, das Datum (1. Januar 1970) als Standard für die Zeitmanipulation zu verwenden?

Kein Grund, der zählt.

Pythons time Modul ist die C-Bibliothek. Fragen Sie Ken Thompson, warum er dieses Datum als Epochendatum gewählt hat. Vielleicht hatte jemand Geburtstag.

Excel verwendet zwei verschiedene Epochen. Gibt es einen Grund, warum verschiedene Excel-Versionen unterschiedliche Daten verwenden?

Außer dem eigentlichen Programmierer wird niemand jemals davon erfahren warum diese Art von Entscheidungen wurden getroffen.

Und…

Es ist egal warum das Datum wurde gewählt. Es war einfach.

Astronomen verwenden ihr eigenes Epochendatum: http://en.wikipedia.org/wiki/Epoch_(Astronomie)

Wieso den? Ein Datum muss ausgewählt werden, damit die Mathematik funktioniert. Jedes zufällige Datum wird funktionieren.

Ein Datum weit in der Vergangenheit vermeidet negative Zahlen für den allgemeinen Fall.

Einige der intelligenteren Pakete verwenden das proleptische gregorianische Jahr 1. Gibt es einen Grund, warum Jahr 1?
Es gibt einen Grund, der in Büchern wie Calendrical Calculations angegeben wird: Es ist mathematisch etwas einfacher.

Aber wenn Sie darüber nachdenken, ist der Unterschied zwischen dem 1.1.1 und dem 1.1.1970 nur 1969, ein trivialer mathematischer Offset.

Benutzer-Avatar
Benjamin Bannier

1. Januar 1970 00:00:00 Uhr ist der Nullpunkt von POSIX-Zeit.

Benutzer-Avatar
Yezpahr

Q) “Warum werden Daten ab dem 1. Januar 1970 berechnet?”

EIN) Es musste so aktuell wie möglich sein, aber dennoch enthalten etwas vorbei an. Es gab höchstwahrscheinlich keinen wesentlichen anderen Grund, da viele Menschen genauso denken.

Sie wussten, dass es ein Problem darstellte, wenn sie es zu weit in die Vergangenheit platzierten, und sie wussten, dass es negative Ergebnisse lieferte, wenn es in der Zukunft lag. Es war nicht nötig, tiefer in die Vergangenheit einzutauchen, da die Ereignisse höchstwahrscheinlich in der Zukunft stattfinden werden.

Anmerkungen:
Die Mayas hingegen hatten das Bedürfnis, Ereignisse in die Vergangenheit zu verlegen, da sie das Wissen um viel Vergangenheit hatten, wofür sie einen langfristigen Kalender anfertigten. Nur um all die Routinephänomene auf den Kalender zu setzen.

Der Zeitstempel war nicht als Kalender gedacht, sondern als Epoche. Und ich glaube, die Mayas haben ihren langfristigen Kalender aus derselben Perspektive erstellt. (was bedeutet, dass sie verdammt gut wussten, dass sie keine Beziehung zur Vergangenheit hatten, sie hatten nur das Bedürfnis, sie in einem größeren Maßstab zu sehen)

Benutzer-Avatar
Peter Török

Ja, C (und seine Familie). Hier hat es auch Java genommen.

1316090cookie-checkWarum werden Daten ab dem 1. Januar 1970 berechnet? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy