Unix-Zeitstempel verstehen: Vollstaendige Anleitung fuer Entwickler
Was ist ein Unix-Zeitstempel?
Ein Unix-Zeitstempel ist eine Methode, die Zeit als fortlaufende Gesamtzahl von Sekunden zu verfolgen. Er zählt die Anzahl der Sekunden, die seit dem 1. Januar 1970 um 00:00:00 UTC verstrichen sind — einem Referenzpunkt, der als „Unix-Epoche" bekannt ist.
Der Unix-Zeitstempel 1719000000 repräsentiert beispielsweise einen bestimmten Zeitpunkt: den 22. Juni 2024 um etwa 00:00 UTC. Jede Sekunde erhöht sich diese Zahl um eins.
Warum Unix-Zeitstempel verwenden?
Unix-Zeitstempel sind in der Softwareentwicklung aus mehreren Gründen allgegenwärtig:
- Zeitzonenunabhängigkeit: Ein Zeitstempel repräsentiert weltweit denselben Zeitpunkt. Es gibt keine Unklarheit, ob er in EST, PST oder JST ist — er basiert immer auf UTC.
- Einfacher Vergleich: Zwei Zeitstempel zu vergleichen ist ein einfacher Zahlenvergleich. Wenn Zeitstempel A größer als Zeitstempel B ist, geschah Ereignis A nach Ereignis B.
- Effiziente Speicherung: Eine 10-stellige Ganzzahl zu speichern ist weitaus speichereffizienter als eine formatierte Datumszeichenkette wie „2024-06-22T00:00:00Z" zu speichern.
- Mathematische Operationen: 86.400 Sekunden zu einem Zeitstempel hinzuzufügen ergibt genau 24 Stunden später. Keine Sorge über Monatsgrenzen oder Schaltjahre.
Sekunden vs. Millisekunden
Unix-Zeitstempel kommen in zwei gängigen Formaten vor:
- Sekunden (10 Ziffern): Das ursprüngliche Unix-Zeitstempelformat. Beispiel:
1719000000 - Millisekunden (13 Ziffern): Verwendet von JavaScript und vielen modernen APIs für höhere Präzision. Beispiel:
1719000000000
Eine häufige Fehlerquelle ist das Vermischen dieser beiden Formate. Wenn Sie einen Millisekunden-Zeitstempel an eine Funktion übergeben, die Sekunden erwartet, wird das Datum wildly falsch sein (etwa 50.000 Jahre in der Zukunft).
Mit Zeitstempeln in verschiedenen Sprachen arbeiten
JavaScript
const now = Date.now(); // Millisekunden const seconds = Math.floor(Date.now() / 1000); const date = new Date(seconds * 1000);
Python
import time seconds = int(time.time()) from datetime import datetime dt = datetime.fromtimestamp(seconds)
PHP
$timestamp = time(); // Sekunden
$date = date('Y-m-d H:i:s', $timestamp);
MySQL
SELECT UNIX_TIMESTAMP(); -- aktueller Zeitstempel SELECT FROM_UNIXTIME(1719000000); -- in Datum konvertieren
Häufige Fallstricke
- Das Jahr-2038-Problem: 32-Bit-Ganzzahlen mit Vorzeichen werden am 19. Januar 2038 überlaufen. Systeme, die 32-Bit-Zeitstempel verwenden, müssen auf 64-Bit-Ganzzahlen umsteigen.
- Schaltsekunden: Unix-Zeitstempel berücksichtigen keine Schaltsekunden. Die meisten Systeme ignorieren sie einfach, was zu leichten Abweichungen von der Atomzeit führen kann.
- Zeitzonenanzeige: Erinnern Sie sich immer daran, dass ein Unix-Zeitstempel in UTC ist. Die Anzeige für Benutzer erfordert eine Umrechnung in ihre lokale Zeitzone.
TryQuickToolBox Zeitstempel-Konverter
Unser kostenloses Tool konvertiert zwischen Unix-Zeitstempeln (Sekunden und Millisekunden), ISO-8601-Datumsangaben, UTC-Zeiten und lokalen Zeiten. Die Auto-Erkennung bedeutet, dass Sie jedes Format einfügen und sofort Ergebnisse erhalten können. Klicken Sie auf ein Ergebnis, um es in die Zwischenablage zu kopieren.