Unix-Timestamp-Code-Snippets

Sofort einsetzbarer Code für die Arbeit mit Unix-Timestamps in 9 Programmiersprachen und Datenbanken. Behandelt das Holen des aktuellen Timestamps, die Umwandlung in ein Datum und das Formatieren der Ausgabe.

Über diese Codebeispiele

Alle Beispiele verwenden den Wert 1700000000 als Beispiel-Unix-Timestamp in Sekunden, was dem 15. November 2023 06:13:20 UTC entspricht. Ersetze ihn durch deinen eigenen Timestamp. Beispiele mit Millisekunden nutzen 1700000000000 (derselbe Moment × 1000).

Sekunden vs. Millisekunden je Sprache

Der häufigste Fehler ist das Verwechseln von Sekunden und Millisekunden. Nutze diese Schnellreferenz:

  • Millisekunden (× 1000): JavaScript Date.now(), Java System.currentTimeMillis(), C# DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
  • Sekunden (÷ 1000 zum Vergleich mit JS): Python time.time(), PHP time(), Go time.Now().Unix(), Ruby Time.now.to_i, Rust SystemTime::now().as_secs()
  • SQL: MySQL UNIX_TIMESTAMP() → Sekunden; PostgreSQL EXTRACT(EPOCH) → Sekunden mit Nachkommateil

Diese Snippets sicher verwenden

Jedes Snippet ist bewusst klein, um es in eine Konsole, ein Migrationsskript, einen Test oder einen API-Handler zu kopieren. Prüfe vor dem Produktiveinsatz die erwartete Einheit an der Stelle, an der der Timestamp deinen Code verlässt. Viele Bugs entstehen, wenn ein Dienst Millisekunden sendet und ein anderer Sekunden ohne Umrechnung speichert.

  • Im Browser- und Frontend-Code erwarte Millisekunden, sofern die API-Doku nichts anderes sagt
  • In Backend-Code, Logs und Shell-Tools sind Unix-Sekunden meist der Standard
  • Für Datenbankfilter halte die Einheit über alle Zeilen und Indizes konsistent
  • Für formatierte Ausgabe bevorzuge UTC oder eine explizite IANA-Zeitzone statt der Server-Standardzone

Eine Source of Truth wählen

Wenn mehrere Dienste dieselbe Ereigniszeit berühren, wähle eine Darstellung als Source of Truth und konvertiere an den Rändern. Beispiel: Ein Backend speichert Unix-Sekunden, ein Frontend multipliziert mit 1000 für Date, und ein Report formatiert denselben Moment als UTC oder in einer Geschäftszeitzone.