Springe zum Inhalt

Unix-Timestamp in OpenOffice-Datum und -Zeit umrechnen

Beim Importieren von Listen aus Unix oder Linux in OpenOffice ist in diesen Listen manchmal ein Timestamp als Zeit in Sekunden seit dem 1.1.1970 angegeben. In OpenOffice lässt sich dieser Zeitwert mit Hilfe einer Formel in ein mit OpenOffice darstellbares Datum oder eine Zeit umrechnen.

  • die Unix-Zeit wird in Sekunden seit dem 01.01.1970 angegeben
  • OpenOffice arbeitet mit Tagen seit dem 30.12.1899
  • die Zeit in OpenOffice wird als Bruchteil von einem Tag dargestellt

Mit folgender Beispiel-Formel lassen sich Unix-Timestamps in OpenOffice-Calc in ein Datum und eine Zeit umrechnen:

<del>=GANZZAHL(<Quellzelle>/60/60/24)+DATWERT("01.01.1970")+((<Quellzelle>-GANZZAHL(<Quellzelle>/86400)*86400)/86400)</del>

oder viel einfacher (Danke an Burghard)

=<Quellzelle>/86400+DATWERT("1970-01-01")

<Quellzelle> ist dabei mit der ensprechenden Zellenangabe, in der der Zahlenwert des Unix-Timestamps steht zu ersetzen. Angezeigt wird in der Zelle nach Eingabe der Formel eine Zahl, welche dem OpenOffice Datum und der Zeit entspricht. Die Anzeige als Datum oder Zeit erreicht man anschließend durch Formatierung der Zelle als Datum oder Zeit.

Umrechnung von Unix-Timestamps mit Hilfe einer Formel in OpenOffice

7 Gedanken zu „Unix-Timestamp in OpenOffice-Datum und -Zeit umrechnen

  1. Burghard

    Hallo,

    > OpenOffice arbeitet mit Tagen seit dem 30.12.1999

    1999 oder 1899 ??

    in Libreoffice 3 kann als Referenz gewählt werden:

    30.12.1899 (Standard)
    01.01.1900 (StarCalc 1.0)
    01.01.1904

    Warum solch umständliche Formel? Bei mir funktioniert:

    =/86400+DATWERT("1970-01-01")

    --
    Burghard

    1. shogun

      Der Tippfehler bei der Datumsbasis wurde korrigiert. Danke auch für den Hinweis auf die viel einfachere Formel. Hier war wohl wieder mal "warum einfach, wenns auch kompliziert geht" am Werk.

  2. Ulrich Windl

    Es fehlt noch etwas in der Formal: Die UNIX-Zeit ist in UTC, daher fehlen aktuell (MESZ) zwei Stunden zur lokalen Zeit. Dat Calc eine passende Funktion (UTC zu local time)?

    1. shogun

      Es scheint keine OpenOffice/LibreOffice-Funktion zu geben, den Offset der lokalen Zeit gegenüber UTC herauszubekommen. In diesem Forumbeitrag ist jedoch ein (einigermaßen komplizierter) Weg beschrieben, wie man mit Hilfe von JavaScript + Basic den Offset herausbekommt.

  3. Grizzly

    Hallo
    wie lautet den die Formel um den umgekehrten Weg zu gehen? Ich möchte ein Datum in Unixzeit umrechnen.

    1. shogun

      Die Funktionsnamen zwischen Excel, Open- und LibreOffice scheinen sich zu unterscheiden. Für LibreOffice funktioniert die Umwandlung einer Datum/Zeit-Angabe in einen Unix-Timestamp mit

      =RUNDEN((A1-DATUMWERT("01.01.1970"))*86400)

    2. Grompfyne

      =(A1-DATUMWERT("01.01.1970"))*86400

      wobei A1 die Zelle mit dem Datum (incl. Uhrzeit) ist.

      =(A1-25569)*86400
      funktioniert bei mir auch. Ich gehe davon aus, dass die Anzahl der Tage vom 30.12.1899 bis 01.01.1970 mit 25.569 unveränderlich sein sollte.
      DATWERT funktioniert bei mir in LibreOffice nicht, daher nehme ich DATUMWERT.

Kommentare sind geschlossen.