So funktioniert es
Die Unix-Zeit zählt die Sekunden seit dem 1. Januar 1970 um 00:00:00 UTC, der Unix-Epoche, ohne Schaltsekunden. Zum selben Zeitpunkt ist es überall auf der Erde dieselbe Zahl, weshalb Server, Datenbanken und Logs die Zeit so speichern und Zeitzonen der Anzeige überlassen.
Viele Systeme zählen in kleineren Einheiten: JavaScript und Java in Millisekunden, manche Datenbanken und Tracing-Werkzeuge in Mikrosekunden, Go und Schnittstellen des Linux-Kernels oft in Nanosekunden. Der Converter unterscheidet sie an der Länge: Ein Timestamp in Sekunden hat für jedes Datum zwischen 2001 und 2286 10 Ziffern, in Millisekunden 13, in Mikrosekunden 16 und in Nanosekunden 19. Wählen Sie die Einheit selbst, wenn das Datum weit von heute entfernt ist.
Das Datum wird in UTC, in der Zeitzone Ihres Browsers und in einer Zone Ihrer Wahl angezeigt, mithilfe der Zeitzonendatenbank Ihres Browsers, sodass die Sommerzeit so berücksichtigt wird, wie sie an diesem Datum galt. ISO 8601 ist die Form für Daten und APIs; RFC 2822 ist die in E-Mail-Headern.
Beispiel
1700000000 ist der 14. November 2023 um 22:13:20 UTC: 2023-11-14T22:13:20Z in ISO 8601 und Tue, 14 Nov 2023 22:13:20 +0000 in RFC 2822. In New York war es am selben Tag 17:13:20, in Indien am nächsten Tag 03:43:20. Derselbe Zeitpunkt in Millisekunden ist 1700000000000.
Unix-Zeit im Code
Die aktuelle Epoch-Zeit und eine Epoch-Zeit zurück in ein Datum, in den Sprachen, die auf Servern am häufigsten laufen:
# Bash (GNU date; macOS: date -r 1700000000)
date +%s
date +%s%3N # milliseconds
date -d @1700000000
# Python
import time; int(time.time())
from datetime import datetime, timezone; datetime.fromtimestamp(1700000000, timezone.utc)
// JavaScript
Math.floor(Date.now() / 1000)
new Date(1700000000 * 1000).toISOString()
<?php
time();
date('c', 1700000000);
-- SQL
SELECT UNIX_TIMESTAMP(); -- MySQL, MariaDB
SELECT EXTRACT(EPOCH FROM now())::bigint; -- PostgreSQL
SELECT unixepoch(); -- SQLite 3.38+
SELECT to_timestamp(1700000000); -- PostgreSQL: epoch to dateFragen
Was ist Epoch-Zeit?
Epoch-Zeit, auch Unix-Zeit genannt, ist die Anzahl der Sekunden seit der Unix-Epoche: 1. Januar 1970, 00:00:00 UTC. Frühere Daten sind negativ. Fast jedes Betriebssystem und jede Programmiersprache zählt die Zeit von dort an, und ein Epoch-Converter wie dieser macht aus dieser Zahl ein lesbares Datum und zurück.
Was ist das Jahr-2038-Problem?
Programme, die die Unix-Zeit in einer vorzeichenbehafteten 32-Bit-Ganzzahl speichern, können nur bis 2.147.483.647 zählen, das ist der 19. Januar 2038 um 03:14:07 UTC. Eine Sekunde später springt die Zahl auf einen negativen Wert und wird als Dezember 1901 gelesen. Aktuelle 64-Bit-Systeme verwenden ein 64-Bit-time_t und sind nicht betroffen, alte Embedded-Geräte, Dateiformate und Datenbankspalten, die 32-Bit-Sekunden speichern, aber schon.
Ist mein Timestamp in Sekunden oder Millisekunden?
Zählen Sie die Ziffern. Ein aktuelles Datum hat in Sekunden 10 Ziffern (1700000000), in Millisekunden 13 (1700000000000). Date.now() von JavaScript und System.currentTimeMillis() von Java liefern Millisekunden; date +%s, time() in PHP und int(time.time()) in Python liefern Sekunden. Kommt ein Datum im Jahr 1970 oder Tausende Jahre in der Zukunft heraus, stimmt die Einheit nicht.
Haben Unix-Timestamps eine Zeitzone?
Nein. Ein Timestamp ist im selben Augenblick überall auf der Welt dieselbe Zahl; er zählt immer ab Mitternacht UTC am 1. Januar 1970. Eine Zeitzone spielt erst eine Rolle, wenn Sie ihn in ein Kalenderdatum mit Uhrzeit umwandeln, weshalb der Converter denselben Timestamp in mehreren Zonen zeigt.
Zählt die Unix-Zeit Schaltsekunden?
Nein. Die Unix-Zeit behandelt jeden Tag als genau 86.400 Sekunden, sodass die 27 seit 1972 zu UTC hinzugefügten Schaltsekunden (die letzte Ende 2016) nicht mitgezählt werden. Für Logs und den Alltag spielt das keine Rolle.