Symbolbild für Unix-Timestamp: laufende Sekundenzahl auf dunklem Monitor

Unix-Timestamp

Unix-Timestamp jetzt
1780832215
Sekunden seit 1.1.1970 UTC

Beim Aufruf der Seite war 07.06.2026, 13:36:55 Uhr (Europe/Berlin), das entspricht dem Unix-Timestamp 1780832215. Für einen frischen Wert die Seite neu laden. Auf 32-Bit-Systemen läuft die Zählung am 19.01.2038 um 03:14:07 UTC über - das ist das Y2038-Problem.

Der Unix-Timestamp ist die Sekundenzahl seit dem 1. Januar 1970, 00:00 Uhr UTC. Er ist die universelle Sprache für Zeit in der Programmierung: kompakt, sortierbar, zeitzonenneutral, ohne Sonderfälle wie Sommerzeit oder Schaltsekunden. Wer mit Logs, APIs, Datenbanken oder Caching arbeitet, kommt am Timestamp nicht vorbei.

Das Tool oben zeigt dir den aktuellen Wert in Echtzeit. Weiter unten kannst du einen beliebigen Timestamp in ein Datum umrechnen oder umgekehrt - in beiden Richtungen, mit lokaler Zeit (Europe/Berlin) und UTC nebeneinander.

Timestamp in Datum umrechnen

Gib einen Unix-Timestamp ein, das Tool zeigt das entsprechende Datum in lokaler Zeit (Berlin) und UTC:

Datum in Timestamp umrechnen

Andersrum: ein Datum (Datum oder Datum mit Uhrzeit) wird zum Timestamp. Die Eingabe wird als Europe/Berlin interpretiert:

Was ist ein Unix-Timestamp?

Ein Unix-Timestamp ist eine Ganzzahl - keine Datumsstruktur, kein String, kein Format mit Trennzeichen. Er zählt die Sekunden, die seit der sogenannten Unix-Epoche vergangen sind: dem 1. Januar 1970 um 00:00:00 Uhr UTC. Dieses Datum wurde damals von den Entwicklern des Unix-Betriebssystems festgelegt - ein willkürlicher Bezugspunkt, der sich aus historischen Gründen weltweit durchgesetzt hat.

Beispiele zur Einordnung:

Die zentrale Stärke ist die Einfachheit. Zwei Timestamps lassen sich vergleichen wie zwei beliebige Zahlen: der kleinere ist früher. Die Differenz ist die Zeit dazwischen in Sekunden. Es gibt keine Komplikationen mit Monaten unterschiedlicher Länge, Schaltjahren, Sommerzeit oder Zeitzonenwechseln - der Timestamp ist immer UTC und immer sekundengenau.

Auch das Sortieren und Indexieren in Datenbanken ist schnell, weil Integer-Spalten kompakter und effizienter sind als String-Datumsfelder. Ein Eintrag updated_at = 1717718400 liegt klar vor updated_at = 1717804800 - kein String-Vergleich nötig.

Code-Snippets in vier Sprachen

So liest und schreibst du den aktuellen Unix-Timestamp in den vier gängigen Web-Sprachen. Achtung bei JavaScript: dort wird in Millisekunden gezählt, alle anderen in Sekunden.

PHP

// Aktueller Timestamp (Sekunden)
$now = time();                          // 1717804800

// Timestamp -> Datum
echo date('Y-m-d H:i:s', $now);         // "2026-06-07 12:00:00"

// Datum -> Timestamp
$ts = strtotime('2026-06-07 12:00:00'); // interpretiert in Server-Zeitzone

// Mit DateTime und expliziter Zeitzone
$dt = new DateTime('2026-06-07 12:00:00', new DateTimeZone('Europe/Berlin'));
$ts = $dt->getTimestamp();

JavaScript

// Aktueller Timestamp in Millisekunden (!)
const nowMs = Date.now();               // 1717804800000

// In Sekunden umrechnen
const nowSec = Math.floor(Date.now() / 1000);

// Timestamp -> Datum
const d = new Date(1717804800 * 1000);  // wichtig: * 1000
console.log(d.toISOString());           // "2026-06-07T10:00:00.000Z"

// Datum -> Timestamp
const ts = Math.floor(new Date('2026-06-07T12:00:00+02:00').getTime() / 1000);

Python

import time, datetime

# Aktueller Timestamp
now = int(time.time())                  # 1717804800

# Timestamp -> Datum
d = datetime.datetime.fromtimestamp(1717804800, tz=datetime.timezone.utc)
print(d.isoformat())                    # "2026-06-07T10:00:00+00:00"

# Datum -> Timestamp
dt = datetime.datetime(2026, 6, 7, 12, 0, 0,
        tzinfo=datetime.timezone(datetime.timedelta(hours=2)))
ts = int(dt.timestamp())

MySQL

-- Aktueller Timestamp
SELECT UNIX_TIMESTAMP();                -- 1717804800

-- Timestamp -> Datum
SELECT FROM_UNIXTIME(1717804800);       -- "2026-06-07 12:00:00" (Session-TZ)
SELECT FROM_UNIXTIME(1717804800, '%Y-%m-%d %H:%i:%s');

-- Datum -> Timestamp
SELECT UNIX_TIMESTAMP('2026-06-07 12:00:00');

Alle vier Sprachen kennen den Timestamp nativ. Bibliotheken sind nicht nötig - die Funktionen sind seit Jahrzehnten in den Standard-APIs verankert.

Y2038 - der 32-Bit-Überlauf

Das berühmteste Limit des Unix-Timestamps trifft 32-Bit-Systeme. Dort wird der Wert als signed int32 gespeichert, mit einem Wertebereich von -2147483648 bis 2147483647. Die positive Grenze wird am 19. Januar 2038, 03:14:07 UTC erreicht. Die nächste Sekunde wäre 2147483648, was aber als negative Zahl interpretiert wird - der Wert springt auf den 13. Dezember 1901 zurück.

Auswirkungen sind je nach Anwendung unterschiedlich:

Die Industrie arbeitet seit Jahren an der Umstellung auf time_t als 64-Bit-Datentyp. Aktuelle Linux-Kernel seit Version 5.6 unterstützen 64-Bit-Timestamps auch auf 32-Bit-Plattformen. Die Übergangsphase wird vermutlich bis weit nach 2038 reichen, weil viele Geräte nie ein Update bekommen.

Häufige Fragen zum Unix-Timestamp

Was ist ein Unix-Timestamp?

Ein Unix-Timestamp ist eine Ganzzahl, die zählt, wie viele Sekunden seit dem 1. Januar 1970, 00:00 Uhr UTC vergangen sind. Schaltsekunden werden dabei ignoriert. Das Format ist plattformunabhängig, einfach zu speichern und zu vergleichen - deshalb nutzt fast jedes Betriebssystem, jede Datenbank und jede API es als Standard für Zeitstempel.

Wo wird der Unix-Timestamp verwendet?

Überall, wo Zeitstempel gespeichert oder verglichen werden: in Datenbanken (MySQL INT UNSIGNED oder BIGINT), in HTTP-Headern (Last-Modified, Expires), in JSON-APIs (created_at, updated_at), in Log-Dateien und in JWT-Tokens (iat, exp). Auch das Unix-Dateisystem speichert mtime und ctime als Timestamp.

Was ist das Y2038-Problem?

Auf 32-Bit-Systemen wird der Timestamp als signed int32 gespeichert, das geht bis 2147483647. Dieser Wert wird am 19. Januar 2038, 03:14:07 UTC überschritten - die nächste Sekunde wäre 2147483648, was als negative Zahl interpretiert wird und auf 1901 zurückspringt. Auf modernen 64-Bit-Systemen ist das Problem entschärft (der Wertebereich reicht dann bis zum Jahr 292 277 026 596). Eingebettete Geräte mit alter 32-Bit-Hardware (Router, Sensoren, Steuerungen) sind die kritischen Stellen.

Wie hängt der Timestamp mit der Zeitzone zusammen?

Der Timestamp selbst kennt keine Zeitzone, er steht immer für UTC. Wenn du einen Timestamp in ein menschliches Datum umrechnest, brauchst du eine Zielzeitzone. Beispiel: 1717718400 ist 07.06.2024, 00:00 UTC - in Berlin (UTC+2 im Sommer) wäre das 07.06.2024, 02:00 Uhr. Bei Logs und APIs immer mit UTC arbeiten, erst beim Anzeigen in die lokale Zeit konvertieren.

Sekunden oder Millisekunden - was ist Standard?

Unix selbst zählt in Sekunden. JavaScript dagegen arbeitet mit Millisekunden seit dem 1.1.1970 (Date.now()). Wer Daten zwischen Backend (Sekunden) und Frontend (Millisekunden) tauscht, muss die Einheit eindeutig dokumentieren oder konvertieren. Faustregel: hat die Zahl 10 Stellen, sind es Sekunden (bis 2286). Hat sie 13 Stellen, sind es Millisekunden.

Wie speichere ich einen Timestamp in MySQL?

Drei gängige Wege: als INT UNSIGNED (reicht bis 2106), als BIGINT (überlebt das Universum), oder als nativer Datentyp DATETIME bzw. TIMESTAMP. Der MySQL-TIMESTAMP-Typ ist intern ein Unix-Timestamp und konvertiert automatisch in die Session-Zeitzone - praktisch, aber tückisch bei Zeitzonen-Wechseln. DATETIME speichert die Werte ohne Zeitzonen-Bezug und ist deshalb stabiler.

Quellen

Verwandte Anleitungen