Unix Timestamp Konverter – Zeitstempel in Datum umrechnen

✅ Kopiert!
← Zurück zu allen Mini-Tools
⏱️ Developer-Tool · Kostenlos · Offline-fähig · Im Browser

Unix Timestamp Konverter

Der vollständigste Timestamp-Konverter im deutschen Web. Automatische Erkennung, Zeitzonen-Vergleich, Code-Snippets für 8 Sprachen, Timeline-Visualisierung und Lernpfad für Einsteiger bis Experten.

🔍 Auto-Erkennung Sek/ms 🌍 Zeitzonen-Vergleich 📋 Copy All Formats 🔗 Shareable URL ⏳ Massen-Konverter 💾 History
Aktueller Unix-Timestamp (Echtzeit)
UTC –
📅
Epoche-Start
1. Jan 1970 UTC
🔢
Millisekunden-TS
🌍
Deine Zeitzone
⚠️
2038-Max (32-Bit)
2.147.483.647

Vollständige Analyse des aktuellen Moments — alle Formate auf einen Blick.

🌍 Live Zeitzonen-Vergleich

Derselbe Moment — weltweit in Echtzeit. Zeigt, warum Unix-Timestamps zeitzonenneutral sind.

🔄 Massen-Konverter

Mehrere Timestamps oder JSON auf einmal verarbeiten — ideal für Log-Dateien und API-Antworten.

🕐 Verlauf
Noch keine Timestamps konvertiert
📍 Timeline: Wo liegt dein Timestamp?
197019902010Heute2038
Wichtige Timestamps in der Geschichte
📈 Timestamp-Wachstum über die Zeit
Unix-Timestamps wachsen stetig um 1 pro Sekunde. Dieses Chart zeigt das Wachstum von 1970 bis 2038.

💻 Copy-Paste Code-Snippets

Timestamps generieren und konvertieren — in 8 Sprachen, sofort einsatzbereit.

JavaScript / Node.js
// ── Aktuellen Timestamp generieren ──
const tsSeconds = Math.floor(Date.now() / 1000);  // 10-stellig
const tsMillis  = Date.now();                       // 13-stellig

// ── Timestamp → Date umwandeln ──
const ts = 1700000000;
const date = new Date(ts * 1000);       // in ms umrechnen!
console.log(date.toISOString());          // "2023-11-14T22:13:20.000Z"
console.log(date.toLocaleString('de-DE')); // "14.11.2023, 23:13:20"

// ── Date → Timestamp umwandeln ──
const myDate = new Date('2024-06-01T12:00:00Z');
const myTs   = Math.floor(myDate.getTime() / 1000); // 1717243200

// ── Relative Zeit berechnen ──
const relTime = ts => {
  const diff = (Date.now() / 1000) - ts;
  if (diff < 60)     return `${Math.floor(diff)}s ago`;
  if (diff < 3600)   return `${Math.floor(diff/60)}m ago`;
  if (diff < 86400)  return `${Math.floor(diff/3600)}h ago`;
  return `${Math.floor(diff/86400)}d ago`;
};
Python 3
import time
from datetime import datetime, timezone, timedelta

# ── Aktuellen Timestamp generieren ──
ts_seconds = int(time.time())              # 10-stellig
ts_millis  = int(time.time() * 1000)      # 13-stellig

# ── Timestamp → Datetime umwandeln ──
ts = 1700000000

# UTC (empfohlen!)
dt_utc   = datetime.fromtimestamp(ts, tz=timezone.utc)
print(dt_utc.isoformat())          # 2023-11-14T22:13:20+00:00

# Lokal (Vorsicht bei Zeitzonen!)
dt_local = datetime.fromtimestamp(ts)
print(dt_local.strftime('%d.%m.%Y %H:%M:%S'))

# ── Datetime → Timestamp umwandeln ──
my_dt = datetime(2024, 6, 1, 12, 0, 0, tzinfo=timezone.utc)
my_ts = int(my_dt.timestamp())    # 1717243200

# ── Mit pytz für komplexe Zeitzonen ──
# pip install pytz
import pytz
berlin = pytz.timezone('Europe/Berlin')
dt_berlin = datetime.fromtimestamp(ts, tz=berlin)
PHP 8
// ── Aktuellen Timestamp generieren ──
$ts      = time();                     // Sekunden
$ts_ms   = (int)(microtime(true) * 1000); // Millisekunden

// ── Timestamp → Datum umwandeln ──
$ts = 1700000000;

// Einfach mit date()
echo date('d.m.Y H:i:s', $ts);      // 14.11.2023 23:13:20
echo date('c', $ts);                 // ISO 8601

// Mit DateTime (empfohlen für Zeitzonen)
$dt = new DateTime();
$dt->setTimestamp($ts);
$dt->setTimezone(new DateTimeZone('Europe/Berlin'));
echo $dt->format('d.m.Y H:i:s T');

// ── Datum → Timestamp umwandeln ──
$dt2 = new DateTime('2024-06-01 12:00:00', new DateTimeZone('UTC'));
echo $dt2->getTimestamp();          // 1717243200

// ── Carbon (Laravel) ──
// $dt = Carbon::createFromTimestamp(1700000000, 'Europe/Berlin');
Java 11+
import java.time.*;
import java.time.format.*;

// ── Aktuellen Timestamp generieren ──
long tsSeconds = Instant.now().getEpochSecond();  // 10-stellig
long tsMillis  = System.currentTimeMillis();       // 13-stellig

// ── Timestamp → Instant umwandeln ──
Instant instant = Instant.ofEpochSecond(1700000000L);
System.out.println(instant);           // 2023-11-14T22:13:20Z

// Mit Zeitzone (ZonedDateTime)
ZoneId berlin = ZoneId.of("Europe/Berlin");
ZonedDateTime zdt = instant.atZone(berlin);
System.out.println(zdt);    // 2023-11-14T23:13:20+01:00[Europe/Berlin]

// Formatieren
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
System.out.println(zdt.format(fmt));  // 14.11.2023 23:13:20

// ── LocalDateTime → Timestamp ──
LocalDateTime ldt = LocalDateTime.of(2024, 6, 1, 12, 0);
long ts = ldt.toEpochSecond(ZoneOffset.UTC);  // 1717243200
C# / .NET
using System;

// ── Aktuellen Timestamp generieren ──
long tsSeconds = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
long tsMillis  = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

// ── Timestamp → DateTimeOffset ──
long ts = 1700000000L;
DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(ts);
Console.WriteLine(dto.UtcDateTime);           // 11/14/2023 10:13:20 PM
Console.WriteLine(dto.ToString("o"));           // ISO 8601

// Mit Zeitzone
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
DateTime localDt = TimeZoneInfo.ConvertTimeFromUtc(dto.UtcDateTime, tz);

// ── DateTime → Timestamp ──
DateTime myDt = new DateTime(2024, 6, 1, 12, 0, 0, DateTimeKind.Utc);
long myTs = new DateTimeOffset(myDt).ToUnixTimeSeconds();
Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // ── Aktuellen Timestamp generieren ──
    tsSeconds := time.Now().Unix()
    tsMillis  := time.Now().UnixMilli()
    tsNanos   := time.Now().UnixNano()

    // ── Timestamp → time.Time ──
    ts := int64(1700000000)
    t  := time.Unix(ts, 0).UTC()
    fmt.Println(t.Format(time.RFC3339))    // 2023-11-14T22:13:20Z
    fmt.Println(t.Format("02.01.2006 15:04:05"))

    // Mit Zeitzone
    loc, _ := time.LoadLocation("Europe/Berlin")
    t_local := t.In(loc)
    fmt.Println(t_local.Format("02.01.2006 15:04:05 MST"))

    // ── time.Time → Timestamp ──
    myTime := time.Date(2024, time.June, 1, 12, 0, 0, 0, time.UTC)
    myTs   := myTime.Unix()    // 1717243200
    _ = tsMillis; _ = tsNanos; _ = myTs
}
SQL (MySQL / PostgreSQL / SQLite)
-- ═══ MySQL / MariaDB ═══
SELECT UNIX_TIMESTAMP() AS ts_now;               -- aktueller Timestamp
SELECT FROM_UNIXTIME(1700000000) AS human_date;  -- → '2023-11-14 23:13:20'
SELECT FROM_UNIXTIME(1700000000, '%d.%m.%Y %H:%i');
SELECT UNIX_TIMESTAMP('2024-06-01 12:00:00');     -- → 1717243200

-- Zeitzonen in MySQL
SELECT CONVERT_TZ(FROM_UNIXTIME(1700000000), '+00:00', 'Europe/Berlin');

-- ═══ PostgreSQL ═══
SELECT EXTRACT(EPOCH FROM NOW()) AS ts_now;
SELECT to_timestamp(1700000000) AS human_date;
SELECT to_timestamp(1700000000) AT TIME ZONE 'Europe/Berlin';
SELECT EXTRACT(EPOCH FROM '2024-06-01 12:00:00'::timestamp);

-- ═══ SQLite ═══
SELECT strftime('%s', 'now') AS ts_now;
SELECT datetime(1700000000, 'unixepoch');
SELECT datetime(1700000000, 'unixepoch', 'localtime');
Bash / Linux / macOS
# ── Aktuellen Timestamp generieren ──
TS=$(date +%s)            # Sekunden (GNU date + macOS)
TS_MS=$(date +%s%3N)       # Millisekunden (nur GNU date)

# ── Timestamp → Datum (GNU date / Linux) ──
date -d @1700000000
date -d @1700000000 +"%d.%m.%Y %H:%M:%S"
date -d @1700000000 -u +"%Y-%m-%dT%H:%M:%SZ"  # UTC/ISO

# ── Timestamp → Datum (macOS BSD date) ──
date -r 1700000000
date -r 1700000000 "+%d.%m.%Y %H:%M:%S"

# ── Datum → Timestamp ──
date -d "2024-06-01 12:00:00 UTC" +%s    # GNU date
date -j -f "%Y-%m-%d %H:%M:%S" "2024-06-01 12:00:00" +%s  # macOS

# ── Mit Python in Bash ──
python3 -c "import datetime; print(int(datetime.datetime(2024,6,1,12,0,0,tzinfo=datetime.timezone.utc).timestamp()))"

Unix Timestamp – Der vollständige Lernpfad: Von Einsteiger bis Experte

Ob du gerade das erste Mal auf eine Zahl wie 1700000000 gestoßen bist oder als erfahrener Entwickler verstehen willst, warum dein 32-Bit-System 2038 Probleme bekommen wird — hier findest du alles, was du über Unix-Timestamps wissen musst. Strukturiert als progressiver Lernpfad: du kannst auf jeder Ebene einsteigen.

LV 1
🟢 Einsteiger – Was ist ein Timestamp und warum existiert er?
Du hast noch nie von Unix-Zeit gehört. Hier erkläre ich das Konzept mit einer Analogie, die jeder versteht — ohne Vorwissen.
LV 2
🔵 Grundkenntnisse – Konvertieren, Sekunden vs. Millisekunden
Du weißt was ein Timestamp ist, willst aber verstehen wie man ihn benutzt und warum es manchmal 10, manchmal 13 Stellen sind.
LV 3
🟡 Fortgeschritten – Zeitzonen, UTC, ISO 8601, Sommerzeit
Der Timestamp funktioniert — aber du bekommst Zeitprobleme in internationalen Systemen. Hier lernst du, wie du das vermeidest.
LV 4
🟣 Experte – 32-Bit vs 64-Bit, Y2K38, Präzision, Performance
Du nutzt Timestamps täglich professionell. Hier geht es um interne Repräsentation, das Jahr-2038-Problem und Designentscheidungen.

Level 1: Was ist ein Unix-Timestamp? (Einfach erklärt)

Die universelle Uhrenzahl — eine Analogie

Stell dir vor, alle Menschen der Welt hätten sich am 1. Januar 1970 um genau Mitternacht UTC auf einen Startschuss geeinigt. Seitdem zählt eine gigantische, niemals stehende Uhr einfach hoch: 1, 2, 3, ... Jede Sekunde eine Zahl mehr.

Diese Zahl heißt Unix-Timestamp. Sie ist der universellste, einfachste und platzsparendste Weg, einen Moment in der Zeit festzuhalten. Statt zu schreiben "Dienstag, 14. November 2023, 23:13:20 Uhr mitteleuropäischer Zeit" schreiben Computersysteme einfach: 1700000000.

Das klingt simpel — und das ist es auch. Genau das ist der Grund, warum Unix-Timestamps in praktisch jeder modernen Software, jeder Datenbank, jeder API und jedem Betriebssystem vorkommen.

Warum 1970? Die Ursprungsgeschichte

Niemand hat 1970 als magisches Jahr festgelegt. Es war schlicht pragmatisch: Als Unix in den frühen 1970ern entwickelt wurde, brauchten die Entwickler einen Referenzpunkt — und wählten den nächsten runden Zeitpunkt in der Vergangenheit. Der 1. Januar 1970 ist seitdem als Unix-Epoche bekannt — oder genauer: der Epoch-Startpunkt.

📌 Merksatz für Einsteiger

Unix-Timestamp = Anzahl vergangener Sekunden seit dem 1. Januar 1970, 00:00:00 UTC.

Wenn du dir nichts anderes merkst, merk dir das. Alles andere baut darauf auf.

Warum ist das eine gute Idee?

Die Alternative wäre, Zeitpunkte als Text zu speichern: "14.11.2023 23:13:20". Das klingt menschenlesbar, ist aber für Maschinen eine Katastrophe:

  • Welches Format? DD.MM.YYYY oder MM/DD/YYYY oder YYYY-MM-DD?
  • Welche Zeitzone? Lokale Zeit, UTC, oder mit Offset?
  • Wie vergleicht man zwei Zeitpunkte? Texte lassen sich nicht direkt subtrahieren.
  • Wie viel Speicher braucht ein Textstempel? Viel mehr als eine Zahl.

Ein Timestamp löst all das. Er ist zeitzonenunabhängig, kompakt, vergleichbar und lässt sich mit einfacher Arithmetik berechnen. "Wie viele Sekunden sind zwischen diesen beiden Ereignissen vergangen?" — einfach subtrahieren.

Level 2: Grundkenntnisse — Sekunden, Millisekunden und die 10/13-Stellen-Regel

Das wichtigste Detail: 10 Stellen vs. 13 Stellen

Du wirst zwei Arten von Timestamps begegnen, und es ist einer der häufigsten Entwicklerfehler, sie zu verwechseln:

FormatBeispielEinheitTypisch in
10 Stellen1700000000SekundenUnix/POSIX, Python time.time(), PHP time(), SQL
13 Stellen1700000000000MillisekundenJavaScript Date.now(), Java System.currentTimeMillis()
16 Stellen1700000000000000MikrosekundenPython time.time_ns(), PostgreSQL, High-Precision-Systeme
19 Stellen1700000000000000000NanosekundenGo time.UnixNano(), Java System.nanoTime()

Die goldene Faustregel: Unser Tool erkennt das automatisch. Aber du kannst auch selbst prüfen: Hat dein Timestamp 10 Stellen → Sekunden. Hat er 13 Stellen → Millisekunden. Alles andere: prüf die Dokumentation deiner Quelle.

⚠️ Klassischer Anfängerfehler

new Date(1700000000) in JavaScript gibt dir das Jahr 1970, nicht 2023. Denn JavaScript erwartet Millisekunden. Der richtige Aufruf: new Date(1700000000 * 1000). Dieser Fehler taucht wöchentlich auf Stack Overflow auf.

Timestamps konvertieren — So funktioniert der Rechner

1
Timestamp eingeben
Tippe oder füge deinen Timestamp in das erste Feld ein. Der Konverter erkennt sofort, ob es sich um Sekunden oder Millisekunden handelt — du siehst eine farbige Markierung.
2
Format prüfen (optional)
Die Auto-Erkennung ist in 99% der Fälle korrekt. Falls du es manuell überschreiben willst, wähle im Dropdown "Sekunden" oder "Millisekunden".
3
Zeitzone wählen
Wähle, in welcher Zeitzone das Ergebnis angezeigt werden soll. Standard ist deine lokale Browser-Zeitzone. Du kannst auch UTC oder eine der weltweiten Metropolen wählen.
4
Ergebnisse ablesen
Du siehst sofort: Lokale Zeit, UTC, ISO 8601, kurzes Datum, Wochentag und relative Zeit ("Vor 3 Tagen"). Jedes Format hat einen eigenen Kopier-Button.
5
Teilen oder exportieren
Kopiere alle Formate auf einmal als JSON, teile den Link (z.B. ?ts=1700000000) mit Kollegen, oder nutze den Massen-Konverter für viele Timestamps gleichzeitig.

Level 3: Zeitzonen, UTC und warum das so kompliziert ist

Der größte Vorteil von Timestamps: Zeitzonenunabhängigkeit

Der Timestamp 1700000000 ist immer und überall auf der Welt identisch. Er beschreibt einen absoluten Moment im Universum. Ob du in Berlin, Tokyo oder New York bist — dieselbe Zahl bedeutet dasselbe: 14. November 2023, 22:13:20 UTC.

Erst wenn du diese Zahl in ein lesbares Datum umwandelst, kommt die Zeitzone ins Spiel. Dann ist es:

  • In Berlin (CET, UTC+1): 23:13:20
  • In London (GMT, UTC+0): 22:13:20
  • In New York (EST, UTC-5): 17:13:20
  • In Tokyo (JST, UTC+9): 07:13:20 am nächsten Tag

Das ist kein Bug — das ist der Sinn. Immer UTC speichern, erst bei der Anzeige in lokale Zeit konvertieren. Wenn du diesen Grundsatz einhältst, wirst du keine Zeitzone-Bugs haben.

UTC vs. GMT — der Unterschied

In der Praxis werden UTC und GMT oft synonym verwendet — für Timestamps macht der Unterschied keine Rolle. Technisch gesehen ist UTC (Coordinated Universal Time) der modernere Standard, der auf Atomuhren basiert. GMT (Greenwich Mean Time) ist historisch und astronomisch definiert. Unix-Timestamps sind definitiv UTC.

Sommerzeit (DST) — das unsichtbare Problem

Stell dir vor, du loggst ein Ereignis mit einem lesbaren Datum-String: "2024-10-27 02:30:00". Gibt es diesen Moment in Deutschland? Zweimal. Denn um 3:00 Uhr MESZ wird die Uhr auf 2:00 Uhr MEZ zurückgestellt — und "02:30 Uhr" gibt es sowohl als Sommerzeit als auch als Winterzeit.

Mit einem Unix-Timestamp existiert dieses Problem nicht. 1729988400 ist genau ein Moment, kein mehrdeutiger Datum-String. Das ist der Hauptgrund, warum professionelle Systeme immer Timestamps speichern und niemals lokale Datum-Strings.

💡 Best Practice: UTC in, lokale Zeit out

Speichere in deiner Datenbank immer den Unix-Timestamp oder explizit UTC. Konvertiere die Zeit in lokale Zeitzonen nur für die Anzeige im Frontend — niemals vorher.

ISO 8601 vs. Unix-Timestamp

ISO 8601 ist der internationale Standard für Datum-/Uhrzeitdarstellung: 2023-11-14T22:13:20Z. Das "Z" am Ende steht für UTC. Dieses Format ist menschenlesbar und maschinenverarbeitbar.

KriteriumUnix-TimestampISO 8601Lokaler String
Menschenlesbar
Kompakt✓ (10 Bytes)✕ (24 Bytes)✕ (variabel)
Zeitzonenunabhängig✓ (mit Z/Offset)
Direkt vergleichbar✓ (Zahl)✓ (lexikografisch)
Arithmetik möglich✓ (+86400 = +1 Tag)
DST-sicher✓ (wenn UTC)

Level 4: Experte — Interna, 32-Bit-Limit und das Jahr-2038-Problem

Wie Timestamps intern gespeichert werden

Unter der Haube ist ein Unix-Timestamp eine ganze Zahl (integer). Auf 32-Bit-Systemen wird sie als vorzeichenbehafteter 32-Bit-Integer gespeichert (int32_t). Das bedeutet:

  • Maximaler Wert: 2.147.483.647 (231 - 1)
  • Minimaler Wert: -2.147.483.648 (negative Timestamps = vor 1970)
  • Reichweite: 1. Januar 1970 bis 19. Januar 2038

Auf 64-Bit-Systemen (alle modernen Rechner, Server und Smartphones) ist der Timestamp ein 64-Bit-Integer. Der maximale Wert ist astronomisch groß — er reicht bis ins Jahr 292 Milliarden. Das Jahr-2038-Problem existiert hier schlicht nicht.

🚨
Das Jahr-2038-Problem (Y2K38) — Countdown
Bis zum 32-Bit-Overflow am 19. Januar 2038, 03:14:07 UTC:

Das Y2K38-Problem in der Praxis

Am 19. Januar 2038 um 03:14:07 UTC schlägt der 32-Bit-Timestamp zum letzten Mal. Eine Sekunde danach — bei 2.147.483.648 — rollt er auf den kleinsten negativen 32-Bit-Integer um: -2.147.483.648. Für das System bedeutet das plötzlich: Es ist der 13. Dezember 1901.

Das klingt abstrakt, hat aber in eingebetteten Systemen, älteren Linux-Kerneln, Datenbanken mit INT(11) für Timestamps und IoT-Geräten mit 32-Bit-Prozessoren reale Konsequenzen. Ein Kühlschrank der 2020er Jahre könnte 2038 plötzlich denken, er sei fast 40 Jahre in der Vergangenheit.

🔴 Prüfliste für 2038-Sicherheit

✅ Datenbankspalten als BIGINT (nicht INT) für Timestamps
✅ MySQL: TIMESTAMP durch DATETIME ersetzen (DATETIME unterstützt bis 9999)
✅ 32-Bit-Betriebssysteme aktualisieren oder migrieren
✅ Eingebettete Systeme mit Long-Laufzeit auf 64-Bit prüfen

Präzision: Wann reichen Sekunden nicht aus?

Für die meisten Anwendungen sind Sekunden-Timestamps vollkommen ausreichend. Aber es gibt Szenarien, in denen mehr Präzision gebraucht wird:

  • Millisekunden: Web-APIs, JavaScript, Datenbankabfragen mit Performance-Logging
  • Mikrosekunden: PostgreSQL TIMESTAMP WITH TIME ZONE, Netzwerk-Latenz-Messung
  • Nanosekunden: High-Frequency-Trading, wissenschaftliche Messungen, Prozessor-Profiling

Real-World Use Cases: Timestamps in der Praxis

🔌
API-Debugging: JSON-Timestamps verstehen

Viele APIs — darunter GitHub, Stripe, Twitter/X und AWS — liefern Timestamps in ihren JSON-Antworten. Ein typisches GitHub-API-Response:

JSON"created_at": "2023-11-14T22:13:20Z"
Stripe"created": 1700000000
14.11.2023, 23:13:20 (Berlin)

Stripe und viele andere Dienste verwenden Sekunden-Timestamps in ihren APIs. Wenn du eine charge aus der Stripe API liest und "created": 1700000000 siehst, weißt du jetzt sofort: Diese Zahlung wurde am 14. November 2023 erstellt.

Typische Felder in APIs: created_at, updated_at, timestamp, time, date, epoch. Achte auf den Feldtyp: Ist es ein string (ISO 8601) oder ein number (Unix-Timestamp)?

📋
Server-Log-Analyse: Nginx und Apache

Server-Logs enthalten oft Unix-Timestamps im Combined-Log-Format oder in speziellen Access-Log-Formaten:

Nginxaccess.log: [14/Nov/2023:22:13:20 +0000]
JSON-Log{"time": 1700000020, "status": 200, "path": "/api/v1/users"}
1700000020 = 14.11.2023, 22:13:40 UTC (+20 Sekunden)

Wenn du Logs analysierst und dabei Timestamps findest: Kopiere einfach die Zahl in unseren Massen-Konverter oben auf dieser Seite — du kannst Dutzende auf einmal konvertieren.

🔑
JWT-Tokens: iat und exp Timestamps

JWT (JSON Web Tokens) enthalten standardmäßig zwei Timestamp-Felder, die du häufig debuggen musst:

JWT Payload{
"iat": 1700000000, // issued at (ausgestellt am)
"exp": 1700086400, // expires at (läuft ab am)
"nbf": 1700000000 // not before (gültig ab)
}
iat: 14.11.2023 22:13 UTC | exp: 15.11.2023 22:13 UTC (+24h)

JWT-Tokens werden mit Base64 kodiert. Mit unserem JWT Decoder kannst du den Token direkt dekodieren, und dann die iat und exp Werte hier konvertieren, um zu sehen wann genau dein Token ausläuft.

Häufiges Problem: exp: 1700000000 zu debuggen und festzustellen, dass dein Token vor drei Monaten abgelaufen ist — das erklärt deine 401-Fehler.

🗄️
Datenbanken: MySQL, PostgreSQL und SQLite

Beim direkten Zugriff auf Datenbankdaten via SQL-Client oder Export siehst du oft rohe Integer-Timestamps:

MySQLSELECT created_at FROM orders WHERE id = 42;
1700000000 (INT-Spalte)
LösungSELECT FROM_UNIXTIME(created_at) FROM orders;
'2023-11-14 22:13:20'

Vorsicht in MySQL: Der Spaltentyp TIMESTAMP hat eine Obergrenze am 19. Januar 2038 (Y2K38-Problem!). Für zukünftssichere Anwendungen verwende stattdessen DATETIME (Reichweite bis 9999) oder speichere als BIGINT.

Ablauf-Systeme: Sessions, Tokens, Caches

Timestamps sind ideal für Ablauf-Logik (expiration), weil du einfach addieren kannst:

Sessionexpires = now() + 3600 // +1 Stunde
Tokenexp = iat + 86400 // +24 Stunden
Cachettl = time() + 604800 // +7 Tage
Checkif (time() > expires) → redirect to login

Nützliche Konstanten: 60 = 1 Minute, 3600 = 1 Stunde, 86400 = 1 Tag, 604800 = 1 Woche, 2592000 = 30 Tage.

Häufige Fehler mit Unix-Timestamps

Sekunden statt Millisekunden
new Date(1700000000) // → 1970!
new Date(1700000000 * 1000) // ✓
JavaScript erwartet Millisekunden. Vergisst du den Faktor 1000, landest du im Jahr 1970.
Lokale Zeit als UTC angenommen
new Date("2024-01-01 12:00:00")
new Date("2024-01-01T12:00:00Z") // UTC
Ohne Timezone-Angabe interpretiert JavaScript Datum-Strings als lokale Zeit — das gibt falsche Timestamps.
INT(11) in MySQL
created_at INT(11) DEFAULT 0
created_at BIGINT DEFAULT 0
INT(11) läuft im Jahr 2038 über. Verwende BIGINT für timestamps die bis nach 2038 gültig sind.
DST ignoriert
date("H:i", $ts) // Falsch bei DST
// Immer explizit UTC speichern,
// lokal nur bei Anzeige konvertieren
Lokale Zeit ohne DST-Berücksichtigung kann bei Zeitumstellung stündliche Fehler erzeugen.
Negative Timestamps übersehen
if (!timestamp) return; // Falsch!
if (timestamp === null) return; // ✓
Negative Timestamps (vor 1970) sind valide. Ein Falsy-Check schmeißt sie fälschlicherweise raus.
Timestamps als Strings verglichen
"1700000000" > "999999999" // Falsch!
1700000000 > 999999999 // ✓
Lexikografischer Stringvergleich ist für Timestamps falsch. Immer als Zahl vergleichen.

Häufige Fragen zum Unix Timestamp Konverter

Was ist ein Unix Timestamp einfach erklärt? +
Ein Unix-Timestamp ist eine einzelne Zahl, die angibt, wie viele Sekunden seit dem 1. Januar 1970, 00:00:00 UTC vergangen sind. Er ist der universelle Standard für Zeitangaben in Computersystemen weltweit — kompakt, zeitzonenunabhängig und für Maschinen ideal verarbeitbar. Der aktuelle Wert liegt bei etwa 1,7 Milliarden (10 Stellen).
Warum beginnt die Unix-Zeit am 1. Januar 1970? +
Die Wahl von 1970 war pragmatisch: Als Unix in den frühen 1970er Jahren entwickelt wurde, brauchten die Entwickler einen Referenzpunkt. Sie wählten den nächsten runden Zeitpunkt in der Vergangenheit — den 1. Januar 1970. Es gibt keine tiefere Bedeutung hinter diesem Datum; es hätte genauso gut 1960 oder 1980 sein können.
Wie erkenne ich, ob mein Timestamp Sekunden oder Millisekunden verwendet? +
Die einfachste Methode: Zähle die Stellen. 10 Stellen = Sekunden (klassisch, Standard). 13 Stellen = Millisekunden (JavaScript, viele Web-APIs). Unser Tool erkennt das automatisch. Eine weitere Methode: Teile durch 1000. Ergibt das Ergebnis ein sinnvolles Datum im Bereich 1970–2050? Dann war es Millisekunden.
Was ist Epoch Zeit und was bedeutet Epoch? +
"Epoch" kommt aus der Astronomie und bezeichnet einen festgelegten Referenzzeitpunkt. In der Informatik ist "Unix Epoch" oder "Epoch Zeit" der Startpunkt der Unix-Zeitmessung: der 1. Januar 1970, 00:00:00 UTC. "Epoch time", "Unix time", "POSIX time" und "Unix timestamp" werden alle synonym verwendet und bezeichnen dasselbe Konzept.
Kann ein Unix-Timestamp negativ sein? +
Ja! Negative Timestamps bezeichnen Zeitpunkte vor dem 1. Januar 1970. Zum Beispiel entspricht -86400 dem 31. Dezember 1969, 00:00:00 UTC. Unser Konverter unterstützt negative Timestamps vollständig. Wichtig: Prüfe in deinem Code niemals Timestamps mit einem einfachen if (!ts) — das würde den Wert 0 (1.1.1970) und negative Werte fälschlicherweise ausschließen.
Was passiert beim Jahr-2038-Problem (Y2K38)? +
Am 19. Januar 2038 um 03:14:07 UTC erreicht der 32-Bit-Integer-Timestamp seinen Maximalwert: 2.147.483.647. Eine Sekunde später rollt er auf den kleinsten negativen Wert um (-2.147.483.648), was dem 13. Dezember 1901 entspricht. Moderne 64-Bit-Systeme sind nicht betroffen. Gefährdet sind: embedded Systems, ältere Linux-Kernel, Datenbanken mit INT(11) für Timestamps, und IoT-Geräte mit 32-Bit-Prozessoren.
Ist ein Unix-Timestamp immer UTC? +
Ja. Ein Unix-Timestamp beschreibt immer einen absoluten Zeitpunkt in UTC. Er hat keine Zeitzone — er ist zeitzonenunabhängig. Erst wenn du ihn in ein lesbares Datum umwandelst, kommt die Zeitzone ins Spiel. Das ist ein zentrales Design-Feature, keine Einschränkung.
Warum hat JavaScript Date.now() 13 Stellen statt 10? +
JavaScript arbeitet intern mit Millisekunden statt Sekunden. Date.now() gibt daher immer Millisekunden zurück — das ergibt 13 Stellen. Um den klassischen 10-stelligen Sekunden-Timestamp zu erhalten, teile durch 1000: Math.floor(Date.now() / 1000). Vergisst du die Division, gibt new Date(timestamp) fälschlicherweise das Jahr 1970 zurück.
Wie lege ich einen Timestamp für ein bestimmtes Datum in der Zukunft fest? +
Nutze das "Datum → Timestamp" Panel oben auf dieser Seite: Wähle das gewünschte Datum und die Uhrzeit, stelle sicher dass du die richtige Zeitzone verwendest (am besten UTC), und lies den resultierenden Timestamp ab. Du kannst ihn dann direkt in deinen Code oder deine Datenbank eintragen — zum Beispiel für ein Ablaufdatum, einen geplanten Cron-Job oder ein Buchungssystem.
Wie konvertiere ich Timestamps schnell in der Kommandozeile? +
Auf Linux/Mac: date -d @1700000000 (GNU date) oder date -r 1700000000 (BSD/macOS). Den aktuellen Timestamp erhältst du mit date +%s. Für Millisekunden: date +%s%3N (nur GNU date). In Python: python3 -c "import datetime; print(datetime.datetime.fromtimestamp(1700000000))".

Datenschutz & DSGVO

Alle Berechnungen auf dieser Seite finden ausschließlich lokal in deinem Browser statt. Kein Timestamp, kein Datum und keine deiner Eingaben verlässt deinen Computer. Es werden keine Daten an Server übertragen, gespeichert oder analysiert. Das gilt für alle Tools auf werkix.de: vollständig DSGVO-konform, ohne Cookies für die Tool-Funktion, ohne Tracking deiner Eingaben.

Der Verlauf (History) wird ausschließlich im localStorage deines Browsers gespeichert — lokal, auf deinem Gerät, niemals auf einem Server.

Noch keine Kommentare