Was ist die Unix-Zeit und wann war die Unix-Epoche?

Was ist die Unix-Zeit und wann war die Unix-Epoche?

Warum hat Unix ein eigenes Zeitkonzept? Was ist die Epoche und was ist das Y2038-Problem?

Unix-Zeit ist ein Mittel zur Darstellung eines bestimmten Datums und einer bestimmten Uhrzeit, das von Linux, macOS und vielen anderen interoperablen Systemen verwendet wird. Es ist so weit verbreitet, dass Sie es wahrscheinlich verwenden, ohne sich dessen bewusst zu sein. Sobald Sie jedoch die Unix-Zeit verstanden haben, werden Sie sie in vielen Zusammenhängen entdecken. Mehrere Tools können Ihnen helfen, mit der Unix-Zeit zu arbeiten.

Was ist der Zweck von Unix-Zeit?

Die Unix-Zeit ist eine Anzahl der Gesamtsekunden seit einer festen Uhrzeit und einem festen Datum. Es handelt sich um ein Datums-/Uhrzeit- (oder Zeitstempel-) Format, das sich von den menschenlesbaren Datums- und Uhrzeitangaben unterscheidet, an die wir gewöhnt sind. Das ist rein aus Effizienzgründen. Es nimmt viel weniger Platz in Anspruch, eine einzelne Zahl, die Sekunden darstellt, zu speichern, als separate Werte für Jahr, Monat, Stunde usw.

Natürlich ist der Raumunterschied aus heutiger Sicht gar nicht so groß. Aber bedenken Sie, dass Unix in den späten 1960er Jahren entstand, als der verfügbare Speicherplatz viel kleiner war. Zeitstempel werden auch häufig verwendet, sodass sich ihr Speicher summiert. Jeder Datei sind beispielsweise drei Zeitstempel zugeordnet.

Das Format ist so gut wie unmöglich in Ihrem Kopf zu übersetzen, es sei denn, Sie sind ein mathematisches Genie. Aber es hat immer noch einige Vorteile gegenüber besser lesbaren Alternativen wie Mi, 21 Okt 2015 07:28:00 GMT . Auf einen Blick können Sie ganz einfach zwei Unix-Zeitstempel bestellen. Es ist normalerweise auch schneller, den Unterschied zwischen zwei Zeitstempeln zu berechnen. Dies gilt insbesondere für Termine, die eng beieinander liegen, beispielsweise an benachbarten Tagen.

Was ist die Unix-Zeit und wann war die Unix-Epoche?

Über die Epoche

Die Unix-Zeit ist also eine Gesamtanzahl von Sekunden seit einem bestimmten Zeitpunkt. Aber was ist das für ein Zeitpunkt? Es ist 00:00:00 UTC am 1. Januar 1970 . Dies wird oft als die Unix-Epoche bezeichnet. Programmierer wählten dieses Datum aus Bequemlichkeitsgründen für die Epoche, da es das nächstgelegene runde Datum war, als sie die Unix-Zeit erfanden.

Vielleicht haben Sie dieses Datum schon gesehen, wenn etwas schief gelaufen ist. Es ist eindeutig ein Fehler, der jedoch sehr seltsam aussieht, wenn er zu einem Datum führt, das vor der Geburt vieler von uns liegt! Es ist jedoch völlig verständlich, wenn Sie die Unix-Zeit kennen. Wenn ein System versucht, einen Zeitstempel anzuzeigen, der keinen Wert hat, wird er oft in 0 übersetzt und ergibt das genaue Epochesdatum.

Das Unix-Zeitdatenformat

Genau genommen gibt es keinen. Der ursprüngliche Datentyp war ein 32-Bit-Integer, und dies bleibt auch in viel leistungsfähigeren Systemen häufig der Fall.

Mit diesem Datentyp kann der Wert insgesamt 2^32 Sekunden speichern, was etwas mehr als 136 Jahren entspricht. Dieser Wert ist normalerweise vorzeichenbehaftet, was bedeutet, dass er negativ oder positiv sein kann. Es repräsentiert also normalerweise 68 Jahre auf beiden Seiten der Epoche, dh 1902-2038.

Dies ist natürlich noch eine begrenzte Zeit. Das Zeitstempelformat wurde jedoch hauptsächlich für Konzepte wie die Dateiänderung verwendet. Die Notwendigkeit bestand sehr darin, die Zeit nahe der Gegenwart darzustellen, und nicht die alte Geschichte oder weit in die Zukunft. Selbst bei Anwendungen wie Kalendern besteht selten die Notwendigkeit, Daten über mehrere Jahrzehnte in der Zukunft darzustellen.

Das heißt aber nicht, dass diese begrenzte Zeitspanne problemlos ist…

Das Jahr 2038-Problem

Der Y2K Bug ( einer der schlimmsten Programmierfehler der Geschichte ) betraf Computersysteme, die Jahre als zweistellige Werte speicherten. Als das Jahr 2000 kam, wurde es von solchen Systemen wie 1900 behandelt. Die Katastrophe war allerdings nicht so katastrophal wie befürchtet, vor allem, weil viele Leute im Vorfeld viel Zeit und Mühe aufgewendet haben, um sich darauf vorzubereiten.

Wenn Sie im vorherigen Abschnitt aufgepasst haben, haben Sie vielleicht ein ähnliches Problem entdeckt, das sich auf die Unix-Zeit auswirken könnte. Nun, die Unix-Zeit hat ihr eigenes Datenproblem: das Y2k38-Problem. (Es wird oft als Problem bezeichnet, nicht als Fehler; vielleicht sind wir seit dem Jahr 2000 optimistischer geworden!) Wenn die Unix-Zeit im Jahr 2038 buchstäblich abläuft, werden die Systeme neue Daten entweder als 1902 oder 1970 behandeln. werde einfach ganz scheitern.

Zumindest wird uns dieses Problem nicht um Mitternacht an Silvester treffen. Die letzte Sekunde der 32-Bit-Unix-Zeit wird auf den 19. März fallen. Eventuell werden wir die meisten Systeme bis 2038 aufrüsten oder sie sind bis dahin sowieso veraltet.

Einige nützliche Zeitstempel-Ressourcen

Die Epoch Converter- Site ist möglicherweise der umfassendste Zeitstempelkonverter, der verfügbar ist. Es beginnt mit der Anzeige der aktuellen Unix-Zeit – in Echtzeit – und fügt darüber hinaus fast alle erdenklichen Funktionen hinzu. Seine Hauptverwendung ist die Konvertierung zwischen Zeitstempeln und menschenlesbaren Daten in beide Richtungen.

Dan's Tools ist eine riesige Sammlung nützlicher Web-Apps, von denen eine ein Zeitstempelkonverter ist . Es ist einfacher, hat aber eine sehr saubere Darstellung und ist einfach zu bedienen.

Time.is präsentiert einen weiteren, noch minimalistischeren Look. Es zeigt die Zeit in einer Reihe von Formaten an, einschließlich der Unix-Zeit. Es enthält die aktuelle Uhrzeit in seinem Seitentitel, was nützlich ist.

Was ist die Unix-Zeit und wann war die Unix-Epoche?

Verwenden von Unix-Zeit mit Befehlszeilentools

Unter Linux und macOS ist das Datumsprogramm das zentrale Dienstprogramm für den Umgang mit Datum/Uhrzeit, einschließlich Unix-Zeitstempeln. Ohne Argumente aufgerufen, gibt es das aktuelle Datum/die aktuelle Uhrzeit in einem für Menschen lesbaren Format zurück:

$ date Wed Feb 10 12:28:30 GMT 2021

Wenn Sie das aktuelle Datum/die aktuelle Uhrzeit in Unix-Zeit benötigen, verwenden Sie das +%s- Argument:

$ date +%s 1612960114

Sie können mit dem Flag -d von einem menschenlesbaren Datum in einen Zeitstempel konvertieren, wenn Ihre Datumsversion dies unterstützt. Die meisten Linux-Versionen sollten standardmäßig:

$ date -d "Jan 2 1970" +%s 82800

Unter macOS ist date ein anderes Programm, das einen anderen Satz von Flags erfordert:

$ date -j -f "%b %d %Y %T" "Jan 02 1970 00:00:00" "+%s" 82800

In die andere Richtung können Sie mit dem Flag -r einen Unix-Zeitstempel konvertieren :

$ date -r 1600000000 Sun 13 Sep 2020 13:26:40 BST

Einige andere Programme verwenden das %s- Format, um mit der Unix-Zeit umzugehen. Wenn Sie beispielsweise das Änderungsdatum einer Datei in Unix-Zeit anzeigen möchten, können Sie mit der Linux-Version von ls Folgendes verwenden:

$ ls -l --time-style=+%s index.tmp.html -rw-r--r-- 1 ubuntu ubuntu 17862 1521649818 index.tmp.html

Wie man Unix-Zeit in Programmiersprachen verwendet

PHP hat die  Funktion time() , die den aktuellen Unix-Zeitstempel zurückgibt. Die Funktion date() verwendet einen Zeitstempel als zweites Argument:

$ php -r 'echo date("Y-m-d", time());' 2021-02-11

JavaScript nähert sich den Dingen auf interessante Weise. Es hat eine Date.now()- Methode, um die Anzahl der Millisekunden seit der Unix-Epoche zu erhalten. Natürlich können Sie dies durch 1.000 teilen und das Ergebnis runden, um die äquivalente Unix-Zeit in Sekunden zu erhalten:

> Math.floor(Date.now() / 1000) 1613083012

Unix-Zeit verstehen

Unix-Zeit ist ein einfaches Konzept, das an vielen Stellen auftaucht. Wenn Sie es einmal verstanden haben, können Sie es zum Beispiel bei der Berechnung von Zeitunterschieden sehr nützlich finden. Sie können auch erkennen, wann dies die Ursache für bestimmte Fehler sein kann.

Konzepte wie die Epoche und Zeitstempel sind ein wichtiger Bestandteil beim Einstieg in Linux. Um mehr über Essentials wie ls zu erfahren, lesen Sie unseren Leitfaden zu grundlegenden Linux-Befehlen.


Kopieren und Einfügen auf Chromebook

Kopieren und Einfügen auf Chromebook

Das erste, was Sie sich beim Wechsel zu einem Chromebook vielleicht fragen werden, ist, wie Sie die grundlegenden Dinge erledigen - die Art von Dingen, die Sie in Ihrem vorherigen Betriebssystem auf der Rückseite hatten. Kopieren und Einfügen ist eine dieser grundlegenden Funktionen, die Sie an der einen oder anderen Stelle verwenden müssen.

So machen Sie einen Schreibtest unter Linux mit tt

So machen Sie einen Schreibtest unter Linux mit tt

In der modernen Ära der Technologie ist das Tippen zu einer der häufigsten Tätigkeiten für viele Berufe geworden. Wenn Sie lernen, schneller und genauer zu tippen, können Sie mehr Dinge in der gleichen Zeit erledigen.

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

Ubuntu ist beliebt für seine Robustheit und relativ weniger Fehler. Aber es ist sicher nicht ohne Probleme. Ein solches Problem ist mit seinem Wi-Fi-Treiber. Möglicherweise schalten Sie Ihr System nur ein, um festzustellen, dass Ihr Wi-Fi nicht funktioniert.

So erstellen und scannen Sie QR-Codes auf Chromebook

So erstellen und scannen Sie QR-Codes auf Chromebook

Quick Response Codes, kurz QR-Codes, sind fortschrittliche Barcodes, die mehr Informationen enthalten als ein herkömmlicher Barcode. Diese Codes sind zweidimensional, sodass Sie sie vertikal oder horizontal scannen können.

So installieren und entfernen Sie Pakete in Arch Linux

So installieren und entfernen Sie Pakete in Arch Linux

Sie möchten Pakete unter Arch Linux installieren, wissen aber nicht wie? Viele Leute stehen vor diesem Problem, wenn sie zum ersten Mal von Debian-basierten Distributionen zu Arch migrieren. Sie können Pakete auf Ihrem Arch-basierten System jedoch problemlos mithilfe von Paketmanagern verwalten.

So installieren Sie Spotify unter Linux

So installieren Sie Spotify unter Linux

Spotify ist einer der größten Musik-Streaming-Dienste auf dem Markt. Es verfügt über native Clients sowohl für mobile (Android und iOS) als auch für Desktop-Geräte (Mac und Windows).

9 grundlegende Befehle für den Einstieg in Linux

9 grundlegende Befehle für den Einstieg in Linux

In Linux-Anleitungen wird oft erwartet, dass Sie bestimmte Operationen im Terminal ausführen, was auf den ersten Blick einschüchternd wirken kann. Aber keine Sorge; Dieser Spickzettel für Linux-Befehle behandelt das Öffnen eines Terminals und das Ausgeben einiger nützlicher Befehle.

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

Während Sie wahrscheinlich bereits wissen, wie Sie eine Datei unter Linux mit dem GUI-Dateibrowser verschieben, fragen Sie sich vielleicht, ob es im Terminal einen Verschiebebefehl gibt, mit dem Sie Dateien schnell in verschiedene Verzeichnisse verschieben können. Der mv-Befehl ist der gewünschte und mit seiner einfachen Syntax und einigen optionalen Sicherheitsflags einfach zu verwenden.

Die 15 besten Themen für Ubuntu 20.04 im Jahr 2020

Die 15 besten Themen für Ubuntu 20.04 im Jahr 2020

Viele neue aktualisierte Designs können auf dem neuen GNOME-Desktop von Ubuntu 20.04 installiert werden. Hier ist eine Liste der besten Ubuntu-Themes im Jahr 2020

Die 10 besten Debian-basierten Linux-Distributionen

Die 10 besten Debian-basierten Linux-Distributionen

Das Standard-Debian und sein beliebter Ableger Ubuntu sind großartige Allround-Optionen für ein Linux-System, aber wenn Sie speziellere Bedürfnisse haben, möchten Sie vielleicht eine Debian-Alternative.