Excel Date Converter

Excel OADate zu Unix-Timestamp-Konverter

Wandle Excel OADate in Unix-Zeit um — mit exakter Formel und Unterstützung großer Werte. Ausgabe in Sekunden, Millisekunden, ISO 8601 und lesbarem Format.

Tage seit 30.12.1899

Aktuelle Zeit — Excel-Seriendatum / OADate
Unix-Timestamp (s)

Was ist eine Excel-Seriennummer für Datumswerte?

Excel speichert Datumswerte als Seriennummern: der ganzzahlige Teil ist die Anzahl der Tage seit der System-Epoche, der Nachkommateil die Tageszeit. Im standardmäßigen 1900-Datumssystem ist die Seriennummer 1 der 1. Januar 1900. Das von .NET und COM verwendete OLE-Automation-Date (OADate) nutzt dieselbe Tageszählung, zählt aber ab dem 30. Dezember 1899.

  • Tag 0 (OADate) = 1899-12-30; Excel-Seriennummer 1 = 1900-01-01
  • Ganzzahliger Teil = Tage, Nachkommateil = Bruchteil eines 24-Stunden-Tages
  • Beispiel: 45244.92592593 → 2023-11-14 22:13:20
  • OADate wird in .NET von DateTime.ToOADate() erzeugt

Ein Excel-Datum in Unix-Zeit umwandeln

Zwischen dem Excel/OADate-Ursprung (1899-12-30) und der Unix-Epoche (1970-01-01) liegen 25.569 Tage. Ziehe das ab und multipliziere mit der Anzahl der Sekunden eines Tages.

  • Unix seconds = (ExcelSerial − 25569) × 86400
  • Unix milliseconds = (ExcelSerial − 25569) × 86400000
  • Umgekehrt: ExcelSerial = Unix seconds / 86400 + 25569
  • Dieser Konverter behandelt die Eingabe als UTC-Wanduhrwert

Der Schaltjahr-Bug von 1900

Aus Gründen der Abwärtskompatibilität mit Lotus 1-2-3 behandelt Excel 1900 fälschlich als Schaltjahr und enthält einen nicht existierenden 29. Februar 1900 (Seriennummer 60). Für jedes Datum ab dem 1. März 1900 ist der Standardversatz 25.569 korrekt; betroffen sind nur Seriennummern von 60 oder darunter. Die meisten realen Daten liegen weit danach, daher spielt der Bug in der Praxis selten eine Rolle — aber er ist der Grund, warum der Versatz 25.569 und nicht 25.568 beträgt.

  • Seriennummer 60 = der Phantom-Tag 1900-02-29; Seriennummer 61 = 1900-03-01
  • Daten vor dem 1900-03-01 sind im 1900-System um einen Tag verschoben
  • Das 1904-Datumssystem (älteres Mac-Excel) zählt stattdessen ab 1904-01-01

Verwandte Zeitstempelformat-Konverter

Andere Tabellenkalkulations-Datumssysteme

Das 1900-System von Excel ist das gängigste, aber nicht das einzige:

  • Das Excel-1904-Datumssystem (älterer Mac-Standard) verwendet 1904-01-01 als Tag 0; der Versatz zu Unix ist 24107
  • Google Sheets entspricht dem 1900-System (Versatz 25569) zur Kompatibilität
  • LibreOffice Calc unterstützt per Konfiguration sowohl den 1899-12-30- als auch den 1900-01-01-Ursprung
  • Power Query: Number.From(DateTime.FromText(...)) liefert Tage seit 1899-12-30 (1900-System)
  • In einer .xlsx speichert das zugrunde liegende XML ISO 8601 — Excel wandelt beim Lesen in die/aus der Seriennummer um

FAQ

Wie wandle ich ein Excel-Seriendatum in einen Unix-Zeitstempel um?
Ziehe 25.569 ab (die Tage zwischen 1899-12-30 und 1970-01-01) und multipliziere mit 86.400, um Unix-Sekunden zu erhalten.
Was ist ein OADate?
Ein OLE-Automation-Date ist eine Fließkomma-Tageszählung ab dem 30. Dezember 1899, verwendet von .NET (DateTime.ToOADate) und COM. Für alle modernen Daten entspricht es den Excel-Seriendaten.
Warum ist der Excel-Versatz 25569 und nicht 25568?
Excels Schaltjahr-Bug von 1900 fügt einen falschen 29. Februar 1900 ein, was jedem Datum danach einen Tag hinzufügt und 25.569 zum korrekten Versatz für moderne Daten macht.