Seite 1 von 1

[V4.0 IP4] Wie bekomme ich Unix-Zeit umgewandelt?

Verfasst: Fr Sep 15, 2023 1:12 pm
von Marino
Hi,

ich frage OpenWeather ab. Hier kann man auch die Vorhersage abfragen für 5 Tage in 3 Stunden Zyklen.

Um damit etwas anzufangen und es geordnet darzustellen, brauche ich also die Zeit für die jeweilige Variable. Was für ein Glück, dass diese angegeben ist. Zur Verfügung steht einmal Unix Zeit (UTC) und das ganze als Text (ISO, UTC). Nun muss ich ja, um die Zeit richtig zu erhalten im Winter 1h und im Sommer 2h dazu rechnen, da angegeben als UTC.

Jetzt wären hier meiner Meinung nach 2 Möglichkeiten.
1. Unix-Zeit nehmen und im Winter 3600s und im Sommer 7200s addieren und anschließend umwandeln. Die Umrechnung von UTC in MEZ wäre damit einfach, aber es ist dann immer noch die Unix-Zeit.
2. Wohl noch schwieriger. Text zerlegen, Zeit isolieren und dann 1-2h addieren. Da muss beim addieren aber mehr beachtet werden.

Wie würdet Ihr das machen, bzw. macht das vielleicht schon jemand?

Viele Grüße
Nils

Re: Wie bekomme ich Unix-Zeit umgewandelt? [V4.0 IP4]

Verfasst: Fr Sep 15, 2023 1:52 pm
von gbglace
Was hast Du damit vor?

Re: Wie bekomme ich Unix-Zeit umgewandelt? [V4.0 IP4]

Verfasst: Fr Sep 15, 2023 3:08 pm
von tiagra
Was ist, wenn du dir die Zeiten zu deiner Abfrage einfach aus dem System ziehst und nicht die Zeiten aus der API nimmst? Die Minute Versatz sind bei Wetterdaten total unerheblich und du kannst sie einfach in deinem Lieblingsformat direkt wegspeichern zusammen mit den Daten aus der API?

Re: Wie bekomme ich Unix-Zeit umgewandelt? [V4.0 IP4]

Verfasst: Fr Sep 15, 2023 3:20 pm
von Marino
@gbglace
Ich möchte damit die Vorhersage ausgeben können, die ich ausgelesen habe und dafür muss die passende Zeit mit übermittelt werden. Mit Unix-Zeit oder UTC kann nicht jeder etwas anfangen und möchte auch nicht rechnen.
Meine Frau wünscht sich das so und möchte das sehen, wenn sie das Haus verlässt.

@tiagra
Das Problem dabei ist, dass ich nicht weiß, wann der Datensatz in der API geändert wird. Wenn ich die dazugehörige Zeit habe und nicht die Abfragezeit, hätte ich immer die zugehörige Zeit.
Wenn ich also die Zeit der Abfrage nehme, kann die Vorhersage in den nächsten drei Stunden beginnen. Die übernächste kann dann in 3 oder 6 Stunden beginnen. Das ist ein wenig zu ungenau. Oder habe ich Dich falsch verstanden?


Viele Grüße
Nils

Re: Wie bekomme ich Unix-Zeit umgewandelt? [V4.0 IP4]

Verfasst: Fr Sep 15, 2023 3:24 pm
von tiagra
@Marino Ok ich kenne die API nicht. In meiner Welt fragt man was, und kriegt sofort eine Antwort - in deinem Fall leider mit einem für dich unleserlichen Zeitstempel. Ich aber ging dann doch davon aus, dass du nach einer bestimmten Vorhersage fragst und dazu dann auch sofort die Antwort bekommst. Aber wie gesagt, ich kenne die API nicht.

Re: Wie bekomme ich Unix-Zeit umgewandelt? [V4.0 IP4]

Verfasst: Fr Sep 15, 2023 3:34 pm
von Marino
Das hier ist in etwa ein Datensatz von denen, die ausgelesen werden:

Code: Alles auswählen

   {
      "clouds": {
        "all": 48
      },
      "pop": 0,
      "sys": {
        "pod": "d"
      },
      "dt_txt": "2023-09-15 12:00:00",
      "visibility": 10000,
      "weather": [
        {
          "description": "scattered clouds",
          "main": "Clouds",
          "id": 802,
          "icon": "03d"
        }
      ],
      "dt": 1694779200,
      "main": {
        "temp_kf": -2.8,
        "temp": 17.6,
        "grnd_level": 1017,
        "temp_max": 20.4,
        "sea_level": 1021,
        "humidity": 64,
        "pressure": 1021,
        "temp_min": 17.6,
        "feels_like": 17.09
      },
      "wind": {
        "gust": 5.57,
        "speed": 4.17,
        "deg": 139
      }
    },
Da die nächsten 5 Tage in 40 Zeitfenstern a 3 Stunden dargestellt sind, gibt es 40 Datensätze.

"dt": 1694779200 wäre hier die Zeit, also "15.09.2023 um 12:00:00 Uhr" (UTC), was aber +2h sein müsste, also "15.09.2023 um 14:00:00 Uhr"
Also: 1694779200 (Unix UTC) + 7200 (s, da Sommerzeit +2h) = 1694786400 (Unix, MEZ) = "15.09.2023 um 14:00:00 Uhr"

"dt_txt": "2023-09-15 12:00:00": Hier sieht man, dass es UTC ist und da müsste man auch 2h zu addieren.

So die Ausgabe in etwa. Wenn ich das also umrechnen könnte, dann wäre jeder Wert des Datensatzes zugehörig zu der Zeit.

Wenn ich die aktuellen Werte abfrage, ist das kein Problem, denn da zählt ja auch die Abfragezeit, da es zur Zeit der Abfrage aktuell ist.

Es geht halt um die Vorhersage und da bekomme ich die nächsten 40 Zeitfenster zu je 3 Stunden (5 Tage in Summe) als Array zurück, wo jeder Datensatz die unix-UTC-Zeit des jeweiligen Datensatzes enthält, nachdem man es zuordnen müsste. Daher meine Frage.


Viele Grüße
Nils

Re: Wie bekomme ich Unix-Zeit umgewandelt? [V4.0 IP4]

Verfasst: Fr Sep 15, 2023 3:44 pm
von Robert_Mini
Hallo Nils!

Antwort zu deiner Frage: mit dem Unix-Zeit-Wandler Baustein

Eingang mit den unix Zeitwert verknüpfen und ausgangsseitig die Konponenten freischalten, die du brauchst.

Edit: hier der Link zur Doku:
https://elabnet.atlassian.net/wiki/spac ... /416645837

Lg Robert

Re: Wie bekomme ich Unix-Zeit umgewandelt? [V4.0 IP4]

Verfasst: Fr Sep 15, 2023 3:56 pm
von Marino
Wie konnte ich den bloß übersehen?
Ich habe hier im Forum gesucht und immer nur den anderen gefunden (Uhr-Zeit). Irgendwie ist der mir durchgegangen.

Vielen Dank für den Tipp!
Der Baustein rechnet sogar direkt die 2h auf die lokale Zeit zu und gibt gleich MEZ aus.

Thread kann gerne geschlossen werden.


Viele Grüße
Nils

Re: Wie bekomme ich Unix-Zeit umgewandelt? [V4.0 IP4]

Verfasst: Fr Sep 15, 2023 4:11 pm
von Robert_Mini
Gern geschehen. Hab den Thread als "gelöst" markiert.

lg
Robert