Sie möchten einen Unix-Timestamp online in ein Datum umwandeln oder ein Datum in einen Unix-Timestamp konvertieren? Unix-Timestamps sind in der Entwicklung allgegenwärtig: Datenbanken, APIs, Logs, Dateisysteme… Dennoch werden sie oft missverstanden und sind Quelle subtiler Bugs im Zusammenhang mit Zeitzonen.
Was bedeutet 1735689600? Ohne ein Tool unmöglich zu wissen. Und Zeitzonen-Konvertierungsfehler können kritische Probleme verursachen: verschobene Events, beschädigte Daten oder schlimmer noch, fehlerhafte Finanztransaktionen.
Unser Timestamp-Konverter ist ein kostenloses Online-Epoch-Tool, das Ihnen ermöglicht, sofort zwischen Timestamps und lesbaren Daten zu konvertieren. In diesem Artikel meistern Sie Unix-Timestamps ein für alle Mal und vermeiden häufige Fallstricke.
Was ist ein Unix-Timestamp?
Ein Unix-Timestamp repräsentiert einen präzisen Zeitpunkt als eine einzige Zahl: die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00:00 UTC.
Dieses Referenzdatum wird Unix-Epoch oder POSIX-Epoch genannt.
Konkrete Beispiele
| Timestamp | Entsprechendes Datum |
|---|---|
| 0 | 1. Januar 1970 00:00:00 UTC |
| 1000000000 | 9. September 2001 01:46:40 UTC |
| 1609459200 | 1. Januar 2021 00:00:00 UTC |
| 1735689600 | 1. Januar 2025 00:00:00 UTC |
Testen Sie mit unserem Timestamp-Konverter!
Warum Timestamps verwenden?
1. Universalität
Ein Timestamp ist unabhängig von der Zeitzone. Der Timestamp 1609459200 repräsentiert denselben Zeitpunkt überall auf der Welt, ob Sie in Paris, New York oder Tokio sind.
2. Speichereinfachheit
Eine einfache Ganzzahl ist leichter und schneller zu verarbeiten als eine formatierte Datumszeichenkette:
// Kompakt und effizient
1609459200
// Schwerer
"2021-01-01T00:00:00.000Z"
3. Vereinfachte Berechnungen
Zeitliche Operationen werden zu einfachen Additionen/Subtraktionen:
const jetzt = Math.floor(Date.now() / 1000);
const inDreiTagen = jetzt + (3 * 24 * 60 * 60);
const vorEinerStunde = jetzt - 3600;
4. Natürliche Sortierung
Timestamps sortieren sich natürlich in chronologischer Reihenfolge:
events.sort((a, b) => a.timestamp - b.timestamp);
5. Einfache Vergleiche
if (expirationTimestamp < Date.now() / 1000) {
console.log("Das Token ist abgelaufen");
}
Sekunden vs. Millisekunden
Die klassische Falle
Der Unterschied in der Präzision zwischen Sekunden und Millisekunden ist Quelle zahlreicher Bugs.
| Format | Länge | Beispielwert |
|---|---|---|
| Sekunden (Unix) | 10 Ziffern | 1735689600 |
| Millisekunden (JS) | 13 Ziffern | 1735689600000 |
JavaScript verwendet Millisekunden
// Date.now() gibt Millisekunden zurück
Date.now(); // 1735689600000
// new Date() erwartet Millisekunden
new Date(1735689600000); // ✅ Korrekt
new Date(1735689600); // ❌ 18. Januar 1970!
Konvertierung zwischen Formaten
// Sekunden → Millisekunden
const ms = timestamp * 1000;
// Millisekunden → Sekunden
const sec = Math.floor(Date.now() / 1000);
Unser Timestamp-Konverter erkennt automatisch das Eingabeformat.
Praktische Konvertierungen
JavaScript
// Aktueller Timestamp (Sekunden)
const now = Math.floor(Date.now() / 1000);
// Datum → Timestamp
const timestamp = Math.floor(new Date("2025-01-01").getTime() / 1000);
// Timestamp → Datum
const date = new Date(timestamp * 1000);
// Lesbare Formatierung
date.toISOString(); // "2025-01-01T00:00:00.000Z"
date.toLocaleDateString('de-DE'); // "01.01.2025"
Python
import time
from datetime import datetime
# Aktueller Timestamp
now = int(time.time())
# Datum → Timestamp
dt = datetime(2025, 1, 1)
timestamp = int(dt.timestamp())
# Timestamp → Datum
date = datetime.fromtimestamp(timestamp)
# Formatierung
date.strftime("%d.%m.%Y %H:%M:%S") # "01.01.2025 00:00:00"
PHP
// Aktueller Timestamp
$now = time();
// Datum → Timestamp
$timestamp = strtotime("2025-01-01");
// Timestamp → Datum
$date = date("d.m.Y H:i:s", $timestamp);
// Mit DateTime
$dt = new DateTime("@$timestamp");
SQL
-- MySQL
SELECT UNIX_TIMESTAMP(NOW());
SELECT FROM_UNIXTIME(1735689600);
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW());
SELECT TO_TIMESTAMP(1735689600);
-- SQLite
SELECT strftime('%s', 'now');
SELECT datetime(1735689600, 'unixepoch');
Das Jahr-2038-Problem
Die Grenze von 32-Bit-Systemen
Vorzeichenbehaftete 32-Bit-Ganzzahlen können Werte bis 2.147.483.647 speichern. Dieses Maximum wird am 19. Januar 2038 um 03:14:07 UTC erreicht.
Nach diesem Datum wird der Timestamp auf nicht aktualisierten Systemen “überlaufen” und negativ, wodurch das Datum auf… 1901 zurückgesetzt wird.
Moderne Lösungen
| Lösung | Beschreibung |
|---|---|
| 64-Bit-Ganzzahlen | Grenze verschoben auf 292 Milliarden Jahre |
| Millisekunden-Timestamps | 64-Bit standardmäßig in JavaScript |
| Moderne Bibliotheken | Luxon, Day.js, date-fns verwenden sichere Formate |
Moderne Systeme (64-Bit Linux, 64-Bit Windows, macOS) sind im Allgemeinen vorbereitet.
Zeitzonen und häufige Fallstricke
Der Timestamp ist IMMER in UTC
Dies ist der wichtigste Punkt. Ein Timestamp hat keine Zeitzone – er repräsentiert einen absoluten Zeitpunkt.
Fallstrick 1: Datumserstellung ohne Zeitzone
// ⚠️ In lokaler Zeit des Browsers/Servers interpretiert
new Date("2025-01-01") // Kann den 31. Dezember 2024 23:00 UTC ergeben!
// ✅ Explizit UTC angeben
new Date("2025-01-01T00:00:00Z")
Fallstrick 2: Datumsvergleich zwischen Zeitzonen
// Ein Nutzer in Paris und einer in New York sehen "01.01.2025"
// Aber ihre lokalen Timestamps sind unterschiedlich!
// ✅ Immer in UTC speichern und vergleichen
const startOfDay = new Date("2025-01-01T00:00:00Z").getTime() / 1000;
Fallstrick 3: Sommerzeit (DST)
Bei Zeitumstellungen existieren bestimmte lokale Zeiten nicht oder zweimal:
// Am 26. März 2025, Umstellung auf Sommerzeit in Deutschland
// 02:30 wird zu 03:30 → 02:30 existiert nicht!
Lösung: Immer in UTC speichern und manipulieren. Nur für die Anzeige konvertieren.
Timestamps in APIs
Best Practices
- Format dokumentieren: Sekunden oder Millisekunden?
- ISO 8601 für Lesbarkeit verwenden:
2025-01-01T12:00:00Z - Beide unterstützen: Timestamps und ISO-Daten als Eingabe akzeptieren
- UTC zurückgeben: Keine spezifische Zeitzone
Beispiel API-Antwort
{
"created_at": 1735689600,
"created_at_iso": "2025-01-01T00:00:00Z",
"timezone": "UTC"
}
Timestamps und Datenbanken
Empfohlene Typen
| Datenbank | Empfohlener Typ |
|---|---|
| PostgreSQL | TIMESTAMPTZ (timestamp with time zone) |
| MySQL | DATETIME oder TIMESTAMP |
| SQLite | INTEGER (Unix-Timestamp) oder TEXT (ISO 8601) |
| MongoDB | Date (in Millisekunden gespeichert) |
PostgreSQL-Beispiel
CREATE TABLE events (
id SERIAL PRIMARY KEY,
name VARCHAR(255),
event_time TIMESTAMPTZ DEFAULT NOW()
);
-- Abfrage nach Zeitraum
SELECT * FROM events
WHERE event_time BETWEEN
TO_TIMESTAMP(1735689600) AND
TO_TIMESTAMP(1735776000);
Timestamp-Debugging
Format erkennen
| Anzahl Ziffern | Wahrscheinliches Format |
|---|---|
| 10 | Unix-Sekunden |
| 13 | JavaScript-Millisekunden |
| 16 | Mikrosekunden |
| 19 | Nanosekunden |
Schnelle Überprüfung
Unser Timestamp-Konverter:
- Erkennt automatisch das Format
- Zeigt das Datum in mehreren Zeitzonen an
- Ermöglicht Konvertierung in beide Richtungen
Ergänzende Tools
Für effizientes Arbeiten mit Daten und Zeit:
- Timestamp-Konverter: Bidirektionale Konvertierung Timestamp ↔ Datum
- Tageszähler: Berechnen Sie die Anzahl der Tage zwischen zwei Daten
- JSON-Formatter: Visualisieren Sie Ihre JSON-Daten mit Timestamps
- UUID-Generator: UUID v1 und v7 enthalten einen Timestamp!
Fazit
Unix-Timestamps sind scheinbar einfach, aber voller Feinheiten. Die wichtigsten Punkte:
- Nur UTC: Der Timestamp hat keine Zeitzone
- Achtung Millisekunden: 10 oder 13 Ziffern macht den ganzen Unterschied
- Bei Anzeige konvertieren: In UTC speichern, in lokaler Zeit anzeigen
- Auf 2038 vorbereiten: 64-Bit-Ganzzahlen verwenden
Müssen Sie schnell einen Timestamp konvertieren? Unser Timestamp-Konverter hilft Ihnen!