Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Unix Timestamp wird falsch umgerechnet

Unix Timestamp wird falsch umgerechnet
25.07.2022 16:04:45
Florian
Hi Leute,
ich will einen Unix Timestamp umrechnen, aber Excel scheint da was bei der Zeitzone falsch zu machen, kann das sein?
Hier ein Screenshot mit der Formel:
Userbild
Normal müsste damit ein Datum 25.03.2022 rauskommen.
Kann jemand helfen? :)
Danke!!
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 16:43:18
Nepumuk
Hallo Florian,
mein Taschenrechner liefert dasselbe Ergebnis. Ergo, Excel rechnet richtig.
Gruß
Nepumuk
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:25:28
Florian
Die Zahl ist rechnerisch korrekt, das stimmt. Nur muss das Ergebnis der 25.03.2022 00:00:00 sein.
Da geht eine Stunde Zeitverschiebung verloren? Wie kann ich das denn lösen? Wenn ich einfach eine Stunde drauf rechne, habe ich das Problem ja in anderen Monat wegen Wommer/Winterzeit.
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:26:59
onur
DU bist doch ein "Excel-Profi" - das solltest du als Profi locker hinkriegen.
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:52:43
Daniel
Hi
naja, eine Stunde hinzuaddieren, wenn das Datum kleiner ist als der Umstellungszeitpunkt im Frühjahr oder größer als der Umstellungszeitpunkt im Herbst.
Umgestellt wird nach aktueller Regel am letzten Sonntag im März und am letzten Sonntag im Oktober.
den letzten Sonntag im Oktober findest du mit dieser Formel, dh vom ersten Tag des Folgemonats einfach seine Wochentagsnummer in der Version 2 abziehen (Montag=1 bis Sonntag=7)
Letzter Sonntag im März 2022: =DATUM(2022;4;1)-WOCHENTAG(DATUM(2022;4;1);2)
Gruß Daniel
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:23:12
onur
Soweit ich weiss, ist die Unixzeit immer UTC, also Weltzeit (bzw Greenwich Mean Time – GMT) - die Zeitzone und ggf Sommerzeit musst du schon selbst umrechnen.
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:27:18
Florian
Ja das dachte ich auch mit der Sommer-/Winterzeit. Aber wie kann ich das denn automatisieren, oder muss ich jetzt in jedem Jahr den Beginn von Sommer und Winterzeit erfassen? :D
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:30:29
onur
Schreib ne Formel oder UDF. Sommerzeit fängt immer am letzten Sonntag des März an und hört am letzten Sonntag des Oktober auf, jeweils um 3:00 Uhr.
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 19:29:24
Daniel
Hi
die Formeln zum Berechnen des Umstellungsdatums (letzter Sonntag im März/Oktober) wurden dir ja gezeigt.
du kannst natürlich auch eine Tabelle mit allen Daten erstellen und dort auslesen.
diese Tabelle gibt schon in der Wikipedia:
https://de.wikipedia.org/wiki/Liste_der_Sommerzeiten
je nachdem wie weit deine Datumswerte zurück gehen, musst du auch noch das Jahr kontrollieren. bis 1995 endete die Sommerzeit im September, seit 1996 im Oktober.
vor 1980 gabs keine Sommerzeit und ich denke mal, bis 1949 wirst du nicht zurückgehen müssen.
Gruß Daniel
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:24:54
Daniel
Hi
die Lösung ist einfach:
der Unix-Zeitstempel gilt für UTC (früher GMT) also die Zeit auf dem Nullmeridian (Greenwich, London)
in Mitteleuropa ist man zu diesem Zeitpunkt schon eine Stunde weiter, und da die Uhrzeit 23.00 ist, ist man dann schon am nächsten Tag
Wenn du also Mitteleuropäische Zeit haben willst, musst du noch eine Stunde hinzuaddieren, für Sommerzeit dann 2
Gruß Daniel
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:25:58
Yal
Nein, es ist richtig.
Die Umstellung zum Sommerzeit erfolgt in Europa am letzten Sonntag im März.
Also am 27.03.2022 02:00 (UTC+01:00) war es 27.03.2022 03:00 (UTC+02:00).
Demenstsprechend ist
1648162800 / 86400 + DATUM(1970;1;1) ergibt 24.03.2022 23:00 nach Winterzeit (UTC+01:00), vollkommen richtig
und nicht 25.03.2022 00:00 (UTC+02:00), was Sommerzeit wäre und zu diesem Zeitpunkt falsch.
Darüber hinaus ignorieren manche Software diese Sommerzeit-Shift und protokollieren den ganzen Jahr im Winterzeit. Es liegt unter anderem, weil manche Programmierungen im Unix-Welt vor 2000 entstanden sind, wo es noch keine gemeinsame europäische MEZ/MESZ. Siehe https://de.wikipedia.org/wiki/Sommerzeit
VG
Yal
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
25.07.2022 17:56:56
Yal
Mit Einbeziehen der Anmekrung von Onur und Daniel: Unix liefert nur UTC+00:00
sollte folgendes als UDF passen (ungetestet):

Public Function UnixTS(ByVal Target As Range)
Dim D As DateTime
D = Target.Range("A1").Value / 86400 + DateSerial(1970, 1, 1)
UnixTS = D + CInt(D = (LetzteSonntag(Year(D), 10) + TimeSerial(3, 0, 0)))
End Function
Function LetzteSonntag(Jahr As Integer, Monat As Integer) As Date
'Credit: Phelan XLPH in http://www.office-loesung.de/ftopic332241_0_0_asc.php
Dim t As Integer
Dim Datum As Date
Datum = DateSerial(Jahr, Monat + 1, 0)
t = Weekday(Datum, vbMonday)
If t > 1 Then Datum = Datum - t
LetzteSonntag = Datum
End Function
(aber sowas von ungetestet ;-)
VG
Yal
Anzeige
Ääh!
25.07.2022 18:00:18
Yal
da fehlt den +2 Std und den Timeserial:
UnixTS = D + TimeSerial(2 +CInt(D = (LetzteSonntag(Year(D), 10) + TimeSerial(3, 0, 0))), 0, 0)
AW: Unix Timestamp wird falsch umgerechnet
26.07.2022 08:46:21
Sigi.21
Hallo Florian,
noch ergänzend ein Hinweis:
Die Unix-Zeit setzt auf Basis der UTC (koordinierte Weltzeit) ab dem 01.01.1970 auf. D.h. da gibt es keine Sommerzeit!
Also rechnest du so um: Unix zu UTC, UTC zu MEZ/MESZ
Gruß Sigi
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
26.07.2022 11:19:52
Florian
Ok, danke.
Aber die Sommerzeit muss ich ja trotzdem berechnen oder nicht? Weil wenn ich ein Datum aus Mai habe (=Sommerzeit) dann fehlt mir wieder diese Stunde im Datum. Selbst, wenn ich die Umrechnung auf MEZ, also 1 Stunde dazu, vornehme.
Userbild
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
26.07.2022 14:26:41
Sigi.21
Hallo Florian,
mit "UTC zu MEZ/MESZ" wollte ich dies ja auch andeuten, dass du, das umgerechnete Datum je nach dem in die Sommerzeit (MESZ) oder Normalzeit (MEZ) umrechnen musst. (In UTC gibt es keine Sommerzeit.) Und damit ist ja deine ursprüngliche Erwartung (25.03.2022, 0:00 Uhr) richtig.
Allgemein gilt: Unix zu UTC / UTC in die gewünschte Zeitzone
Gruß Sigi
Anzeige
AW: Unix Timestamp wird falsch umgerechnet
26.07.2022 18:19:04
Florian
OK, also dann muss ich doch in der Winterzeit 1 Stunden und in der Sommerzeit 2 Stunden dazurechnen. Danke Dir!
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Unix Timestamp in Excel richtig umrechnen


Schritt-für-Schritt-Anleitung

Um Unix Timestamps in Excel korrekt umzurechnen, befolge diese Schritte:

  1. Unix Timestamp in Excel einfügen: Gib den Unix Zeitstempel in eine Zelle ein (z.B. A1).

  2. Umrechnung in Datum: Verwende die folgende Formel, um den Unix Timestamp in ein Datum umzuwandeln:

    =A1/86400 + DATUM(1970;1;1)

    Diese Formel konvertiert den Unix Timestamp in ein Excel-Datum.

  3. Zeitzone anpassen: Da Unix-Zeitstempel in UTC (GMT) angegeben sind, musst du die Zeit für Mitteleuropa anpassen. Füge eine Stunde für MEZ (Mitteleuropäische Zeit) oder zwei Stunden für MESZ (Mitteleuropäische Sommerzeit) hinzu:

    =A1/86400 + DATUM(1970;1;1) + WENN(UND(DATUM(JAHR(A1/86400 + DATUM(1970;1;1)); MONAT(A1/86400 + DATUM(1970;1;1)); TAG(A1/86400 + DATUM(1970;1;1))) >= LetzteSonntag(JAHR(A1/86400 + DATUM(1970;1;1)); 3); DATUM(JAHR(A1/86400 + DATUM(1970;1;1)); MONAT(A1/86400 + DATUM(1970;1;1)); TAG(A1/86400 + DATUM(1970;1;1))) < LetzteSonntag(JAHR(A1/86400 + DATUM(1970;1;1)); 10)); 2; 1)
  4. Formel für den letzten Sonntag: Um den letzten Sonntag im März und Oktober zu bestimmen, kannst du die folgende Funktion nutzen:

    Function LetzteSonntag(Jahr As Integer, Monat As Integer) As Date
       Dim t As Integer
       Dim Datum As Date
       Datum = DateSerial(Jahr, Monat + 1, 0)
       t = Weekday(Datum, vbMonday)
       If t > 1 Then Datum = Datum - t
       LetzteSonntag = Datum
    End Function

Häufige Fehler und Lösungen

  • Falsches Datum: Wenn du ein falsches Datum erhältst, überprüfe, ob du die Zeitzone korrekt angepasst hast. Füge je nach Jahr und Monat die richtige Anzahl an Stunden hinzu.
  • Sommerzeit nicht berücksichtigt: Achte darauf, die Sommerzeit korrekt zu berechnen. Wenn dein Datum in der Sommerzeit liegt, musst du zwei Stunden addieren.
  • Formel funktioniert nicht: Stelle sicher, dass die Zellreferenzen in deinen Formeln korrekt sind und dass du die richtigen Funktionen verwendest.

Alternative Methoden

  • Excel Unix Timestamp Converter: Es gibt Online-Tools, die Unix-Timestamps in Excel-Daten umwandeln können. Dies kann nützlich sein, wenn du schnell Umrechnungen ohne Formeln durchführen möchtest.
  • VBA-Funktionen: Du kannst auch VBA nutzen, um eine benutzerdefinierte Funktion zu erstellen, die automatisch die Umrechnungen vornimmt, ohne dass du die Formeln manuell eingeben musst.

Praktische Beispiele

  1. Beispiel 1: Umrechnung eines Timestamps (1648162800) in Excel:

    =1648162800/86400 + DATUM(1970;1;1) + 2

    Das Ergebnis sollte 27.03.2022 03:00 sein (MESZ).

  2. Beispiel 2: Umrechnung eines Timestamps (1658765085) in Excel:

    =1658765085/86400 + DATUM(1970;1;1) + 1

    Das Ergebnis sollte 25.03.2022 00:00 sein (MEZ).


Tipps für Profis

  • Automatisierung: Überlege dir, eine Tabelle zu erstellen, die alle Umstellungsdaten für die Sommer- und Winterzeit enthält, um die Umrechnung zu automatisieren.
  • Verwendung von Named Ranges: Nutze benannte Bereiche in Excel, um die Lesbarkeit deiner Formeln zu erhöhen und die Wartung zu erleichtern.
  • Regelmäßige Updates: Halte deine Formeln auf dem neuesten Stand, insbesondere wenn es Änderungen in den Sommerzeit-Regelungen gibt.

FAQ: Häufige Fragen

1. Wie kann ich den aktuellen Unix Timestamp in Excel erhalten? Verwende die Formel =JETZT(), um das aktuelle Datum und die Uhrzeit zu erhalten, und konvertiere es dann in einen Unix Timestamp mit:

=(JETZT()-DATUM(1970;1;1))*86400

2. Funktioniert diese Methode in allen Excel-Versionen? Die beschriebenen Methoden sollten in den meisten aktuellen Excel-Versionen funktionieren, einschließlich Excel 2016 und neuer. Stelle sicher, dass du die VBA-Funktionen in einer Version verwendest, die Makros unterstützt.

3. Was ist der Unterschied zwischen UTC und GMT? UTC (Koordinierte Weltzeit) ist eine präzisere Zeitmessung als GMT (Greenwich Mean Time) und wird als der internationale Standard für die Zeitmessung verwendet. UTC bezieht sich nicht auf eine Zeitzone, während GMT eine Zeitzone ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige