Unix Timestamp Converter
Convert Unix timestamps to human-readable dates and back.
Geprüft von Aygul Dovletova · Zuletzt geprüft
So wird der Unix-Timestamp-Konverter verwendet
- Modus auswählen. "Timestamp zu Datum" nimmt eine Zahl und gibt ein lesbares Datum zurück; "Datum zu Timestamp" nimmt ein Datum/Uhrzeit und gibt eine Ganzzahl zurück.
- Den Timestamp einfügen (Sekunden oder Millisekunden). Die Komponente erkennt die Präzision automatisch anhand der Stellenzahl: 10 Stellen werden als Sekunden, 13 Stellen als Millisekunden geparst. Auf Konvertieren klicken, um Lokalzeit, UTC, ISO 8601 und eine relative Zeitangabe anzuzeigen.
- Oder ein Datum auswählen im Modus "Datum zu Timestamp", um die entsprechenden Unix-Sekunden und Millisekunden als Ganzzahlen zu sehen. Jedes Feld hat eine Kopierschaltfläche.
- Den Live-Zähler ablesen am oberen Rand - er aktualisiert jede Sekunde, sodass der aktuelle Epoch-Wert immer einen Klick entfernt ist.
Was Unix-Zeit wirklich ist (und was nicht)
Ein Unix-Timestamp ist die Anzahl der Sekunden, die seit 1970-01-01T00:00:00Z vergangen sind, ohne Schaltsekunden. "Ohne Schaltsekunden" ist das wichtigste und am häufigsten missverstandene Detail. POSIX definiert Unix-Zeit als (Jahr - 1970) * 365,25 * 86400 plus Tag-des-Jahres und Sekunde-des-Tages, ohne Korrektur für die ~27 Schaltsekunden, die UTC seit 1972 absorbiert hat. Das bedeutet, dass Unix-Zeit manchmal pausiert (z. B. wird 23:59:60 zu einem zweiten 23:59:59) oder sprunghaft voranschreitet - die genaue Strategie hängt vom Time-Sync-Daemon des Betriebssystems ab. Googles "Leap Smear" verteilt die Anomalie über 24 Stunden, sodass sich nichts wiederholt. Die Konvertierung auf dieser Seite liest Date.getTime(), also die bereits "gesmierte" Sicht des Browsers, sodass niemals eine 61-Sekunden-Minute sichtbar wird. Einen Timestamp parsen: new Date(seconds * 1000); die Gegenrichtung: Math.floor(date.getTime() / 1000).
Wann man zur Epoch-Konvertierung greift
- Fehlersuche in einem Log-Eintrag mit rohem Epoch-Timestamp ("Warum hat
1699987200einen Alarm ausgelöst?") und man will die Wanduhrzeit wissen. - Generieren eines Cookie-Expires-Werts, eines JWT-iat/exp-Claims oder eines OAuth2-Token-Ablaufs - alle verwenden Unix-Sekunden.
- Befüllen einer Datenbankseeddatei mit historischen Testdaten in
BIGINT-Millisekunden-Spalten. - Lesen eines Foto-EXIF-DateTimeOriginal oder eines Dateisystem-mtime und Umrechnen in ein besprechungsgeeignetes Datum.
- Vergleichen zweier API-Antworten, die sich darin unterscheiden, ob der Timestamp in Sekunden, Millisekunden oder Mikrosekunden ist.
- Berechnen von Countdowns basierend auf API-gelieferten Deadlines in rohen Sekunden seit Epoch.
Fallstricke, die jeder Entwickler irgendwann kennenlernt
- Sekunden vs. Millisekunden. Einen Millisekunden-Timestamp mit 1000 zu multiplizieren ergibt das Jahr 52.000+; einen Sekunden-Timestamp durch 1000 zu teilen ergibt 1970. Der Unterschied ist immer ein Faktor 1000 und immer stillschweigend falsch, wenn verwechselt. Stellenzahl-Erkennung (10 vs. 13) ist die übliche Heuristik.
- Jahr 2038. Ein vorzeichenbehafteter 32-Bit-Integer läuft bei
2147483647= 2038-01-19T03:14:07Z über. Jedes System, das Unix-Zeit noch inint32speichert, springt in diesem Moment auf Dezember 1901. 64-Bit-int64-Systeme verschieben den Überlauf auf das Jahr 292.277.026.596 - weit jenseits menschlicher Relevanz. Eingebettete Geräte, altes C und einige Legacy-Dateiformate sind die realistischen Risiken; alle Mainstream-Sprachen sind längst auf 64-Bit-Zeit umgestiegen. - Jahr 2106. Vorzeichenloser 32-Bit-Überlauf am 2106-02-07T06:28:15Z. Einige ältere Systeme verwendeten
uint32genau um über 2038 hinaus zu kommen; auch sie haben ihre eigene Klippe. - Schaltsekunden. Unix-Zeit tut so, als gäbe es sie nicht. Die IERS fügten zwischen 1972 und 2017 27 davon hinzu (seitdem keine). Die Generalkonferenz für Masse und Gewichte stimmte 2022 dafür, Schaltsekunden bis 2035 abzuschaffen. Bis dahin kann präzise Zeitintervallrechnung über Jahrzehnte um plus/minus 27 Sekunden abweichen.
- Negative Timestamps.
-86400ist der 1969-12-31. Vollkommen gültig; einige frühe Datenbanktreiber hatten damit Probleme. Moderne Sprachen behandeln negative Werte korrekt. Date.now()vs.performance.now(). Ersteres sind Wanduhr-Millisekunden-seit-Epoch und springt, wenn die Systemuhr angepasst wird (NTP, Sommerzeit, manuelle Änderung). Letzteres ist ein monotoner hochauflösender Timer, der nie springt, aber keine Epoch-Referenz hat.Date.now()für Timestamps verwenden;performance.now()für Intervall-Timing.
Epoch in Systemen und Spezifikationen
Unix-Zeit wurde mit der ersten Edition von Unix 1971 eingeführt; POSIX formalisierte sie (IEEE Std 1003.1). Javas System.currentTimeMillis() teilt die Epoch, und JavaScripts Date erbt von Java. Andere Epochs existieren: Windows FILETIME zählt 100-ns-Intervalle seit 1601-01-01; Cocoas NSDate verwendet 2001-01-01 UTC; Excels serielle Datumszahl zählt Tage seit 1900-01-00 mit einem Lotus-1-2-3-Kompatibilitätsfehler, der 1900 als Schaltjahr behandelt (Tag 60 ist "1900-02-29", den es nicht gab). RFC 3339 und ISO 8601 definieren die menschenlesbare Form, die toISOString() ausgibt. NTP-Dämonen synchronisieren die lokale Unix-Zeit mit UTC von pool.ntp.org oder PTP-Quellen.
Epoch-Tools im Vergleich
Befehlszeile: date -r 1700000000 unter BSD/macOS oder date -d @1700000000 unter GNU/Linux - schnell, aber man muss sich das richtige Flag merken. Python: datetime.fromtimestamp(1700000000, tz=timezone.utc) - ausführlich aber korrekt. PostgreSQL: to_timestamp(1700000000). epochconverter.com ist das etablierte Browser-Tool und existiert seit den späten 2000ern; es unterstützt einige esoterischere Epoch-Formate (Apple Mach Absolute, Windows FILETIME hex), die hier aus Fokusgründen fehlen. DevTools-Konsole: new Date(1700000000 * 1000).toISOString() ist eine Zeile. Diese Seite punktet mit einer visuellen Gegenüberstellung von Lokal, UTC, ISO und Relativ auf einen Blick, mit Kopierschaltflächen und Live-Zähler, ohne den Browser-Kontext wechseln zu müssen. Für Massen- oder Script-Verwendung sind Shell-Befehle oder jqs todate/fromdate unschlagbar.
Häufig gestellte Fragen
Warum stimmt der aktuelle Timestamp hier nicht mit epochconverter.com übereinstimmt?
Beide Seiten lesen die lokale Systemuhr des Geräts, keine gemeinsame Referenz. Wenn zwei Tabs einen Bruchteil einer Sekunde versetzt aktualisieren, zeigen sie Werte mit einer Sekunde Unterschied. Jede Abweichung von mehr als ein paar Sekunden deutet auf Browser-Throttling (Hintergrundtabs), einen alten Laptop mit abgedrifteter Uhr oder ein CDN mit veralteter gecachter HTML-Seite hin. Das Tick-Intervall dieser Seite beträgt 1 Hz, gesteuert durch setInterval.
Was ist das Jahr-2038-Problem?
Am 2038-01-19T03:14:07Z laufen vorzeichenbehaftete 32-Bit-Unix-Timestamps auf -2147483648 über, was auf 1901-12-13 abgebildet wird. Systeme mit int32-Zeitdarstellung verhalten sich bereits bei zukunftsgerichteten Berechnungen falsch (Kreditamortisierung, langlebige Zertifikatsabläufe). Die Lösung ist int64-Zeit, die Mainstream-Linux und BSD längst implementiert haben. Sorgen bereiten eingebettete Geräte, alten C-Code oder Protokolle mit hartcodierten 4-Byte-Timestamps.
Wie erkenne ich, ob ein Timestamp in Sekunden oder Millisekunden ist?
Die Anzahl der Stellen ist das Signal. Für jedes aktuelle oder künftige Datum: Sekunden haben 10 Stellen (~1-2 Milliarden) und Millisekunden 13 Stellen (~1-2 Billionen). Mikrosekunden (16 Stellen) und Nanosekunden (19 Stellen) kommen in Low-Level-APIs vor. Eine 10-stellige Zahl, die an new Date() übergeben wird, liefert das Jahr 1970-1973 - das Signal, mit 1000 zu multiplizieren.
Enthält Unix-Zeit Schaltsekunden?
Nein. Unix-Zeit ist "Sekunden seit Epoch unter der Annahme, dass jeder Tag genau 86.400 Sekunden hat" - eine Lüge um etwa 27 Sekunden seit 1972. Echtes UTC fügt Schaltsekunden ein, um innerhalb von 0,9s der Erdrotation zu bleiben. POSIX wählte Einfachheit statt Präzision. Das BIPM stimmte 2022 dafür, Schaltsekunden bis 2035 abzuschaffen, woraufhin die Abweichung eingefroren wird.
Kann ich eine negative Zahl eingeben?
Ja. Negative Timestamps repräsentieren Zeitpunkte vor 1970-01-01T00:00:00Z. Zum Beispiel ist -86400 der 1969-12-31T00:00:00Z und -2208988800 der 1900-01-01T00:00:00Z. Die meisten modernen Sprachen behandeln negative Werte korrekt; einige alte Datenbanktreiber (z. B. MySQL vor 5.6) lehnten sie ab. Wer vorchristliche Daten benötigt und die Speicherschicht verweigert Negative, sollte stattdessen ISO-8601-Strings verwenden.
Warum zeigt die relative Zeitangabe manchmal "in 0 Sekunden"?
Intl.RelativeTimeFormat rundet auf die nächste Einheit, und "jetzt" ist ein schmales Fenster. Wenn das Ziel innerhalb einer halben Sekunde des aktuellen Moments liegt, rundet die Einheit "Sekunden" auf null und man bekommt "in 0 Sekunden" oder "vor 0 Sekunden" je nach Vorzeichen. Das ist technisch korrekt; eine ausgefeiltere UI könnte unter einem Schwellenwert auf "gerade eben" wechseln. Eine Sekunde warten und die Anzeige ergibt einen sinnvollen Wert.
Wird die Konvertierung im Browser oder auf einem Server durchgeführt?
Vollständig im Browser. Der Preact-Island nimmt die Eingabe entgegen, ruft new Date(seconds * 1000) oder date.getTime() / 1000 auf, formatiert das Ergebnis mit Intl.DateTimeFormat und toISOString() und zeigt es an. Es gibt keinen Fetch-Aufruf, kein WebSocket, keine Analyse des Eingabewerts. Der Live-Zähler liest Date.now() in einem setInterval; nichts verlässt den Tab.
Zeigt das Tool den Timestamp in meiner lokalen Zeitzone oder UTC an?
Beides, in separaten Zeilen. Die Zeile "Lokal" verwendet die Browser-Zeitzone (gemeldet von Intl.DateTimeFormat().resolvedOptions().timeZone, abgeleitet aus den BS-Einstellungen). Die Zeile "UTC" ist zonenneutral. Die ISO-8601-Zeile endet auf Z und zeigt UTC an. Für eine dritte Zone den Timezone Converter mit dem resultierenden ISO-String verwenden.
Was ist der Unterschied zwischen Date.now() und performance.now()?
Date.now() gibt Millisekunden seit Unix-Epoch als Ganzzahl zurück und ist die richtige Wahl für Timestamps. performance.now() gibt Millisekunden seit dem Seitenaufruf als Gleitkommazahl mit Submillisekunden-Auflösung zurück und ist monoton - geht nie zurück, auch wenn die Systemuhr angepasst wird. Für "wie lange hat diese Operation gedauert" performance.now() verwenden. Für "wann war dieses Ereignis" Date.now(). Beide zu verwechseln ist ein häufiger Fehler in Profiling-Code.
Kann ich einen sehr großen Timestamp wie 9999999999 umrechnen?
Ja. 9.999.999.999 Sekunden entsprechen dem 2286-11-20, weit innerhalb des JavaScript-Date-Bereichs (obere Grenze Jahr 275.760). Ein 20-stelliger Nanosekunden-Timestamp wird standardmäßig als Millisekunden fehlinterpretiert - zuerst durch 1.000.000 teilen für Millisekunden oder durch 1.000.000.000 für Sekunden.
Wie erzeuge ich aus diesem Tool einen JWT-exp-Claim?
JWT exp (RFC 7519) erwartet Unix-Sekunden als Ganzzahl. Den Modus "Datum zu Timestamp" verwenden, das Ablaufdatum auswählen und den Sekundenwert direkt in den Claim kopieren. Das cookie-Attribut Expires erwartet formal das RFC-2822-Format, keine Sekunden - Date.prototype.toUTCString() auf das resultierende Date-Objekt anwenden. Die meisten Server akzeptieren auch einen ISO-8601-String, aber ältere User-Agents können ihn ablehnen.
Mehr Developer Tools
AI Token Counter
Count tokens for GPT-4o, Claude, and Gemini models instantly.
Open toolBase64 Encoder & Decoder
Encode UTF-8 text to Base64 online or decode Base64 back to UTF-8 and plain text. Runs in your browser with no upload.
Open toolBulk URL Encode / Decode
Encode or decode many URLs at once. Paste a newline-separated list and the tool processes each line in parallel, preserving order and blank lines.
Open toolchmod Calculator
Calculate and convert Unix file permission modes between octal and symbolic.
Open toolCode Screenshot
Create beautiful code snippet images with customizable themes.
Open toolColor Converter
Convert colors between HEX, RGB, HSL and CMYK formats.
Open tool