NEWS
Timestamp - Welches Format für DP?
-
Hallo,
ich versuche gerade einen Timestamp in einen Datenpunkt zu schreiben.
Der DP wird erzeugt mit:
createState(folderName + '.' + room + ".Lastchange","",{name: "Lastchange", type: 'string', role: 'date'}, function () {});Geschrieben wird mit:
setState(folderName + "." + room + ".Lastchange", new Date(), true);Technisch funktioniert das ganze auch, nur bekomme ich eine javascript Warnung in der setState Zeile.
Weitere Infos was da stört bekomme ich nicht (Auch nicht mit ausführlichen Protokollausgaben) - Ich würde mal vermuten das er sich am Format von nen Date() stört...Edith: Was mir gerade aufgefallen ist: new Date() liefert mir lokale Zeit (aktuell 17:06), in den DP wird aber 16:06 geschrieben. Hat vermutlich nichts mit dem Punkt oben zu tun - Ist trotzdem merkwürdig.
@warhammer73 sagte: Warnung in der setState Zeile.
new Date()erzeugt ein Objekt - keinen String. -
@warhammer73 sagte: Warnung in der setState Zeile.
new Date()erzeugt ein Objekt - keinen String.@paul53 sagte in Timestamp - Welches Format für DP?:
@warhammer73 sagte: Warnung in der setState Zeile.
new Date()erzeugt ein Objekt - keinen String. Ich weiß nicht, ob man ein Date-Objekt in einen Datenpunkt schreiben kann.Na dann schreibt man ggf. mit new Date().getTime() . geht das nicht?
-
@paul53 sagte in Timestamp - Welches Format für DP?:
@warhammer73 sagte: Warnung in der setState Zeile.
new Date()erzeugt ein Objekt - keinen String. Ich weiß nicht, ob man ein Date-Objekt in einen Datenpunkt schreiben kann.Na dann schreibt man ggf. mit new Date().getTime() . geht das nicht?
-
@mickym sagte: new Date().getTime() . geht das nicht?
Ja, das ist dann aber eine große Zahl (ms).
-
Hallo,
ich versuche gerade einen Timestamp in einen Datenpunkt zu schreiben.
Der DP wird erzeugt mit:
createState(folderName + '.' + room + ".Lastchange","",{name: "Lastchange", type: 'string', role: 'date'}, function () {});Geschrieben wird mit:
setState(folderName + "." + room + ".Lastchange", new Date(), true);Technisch funktioniert das ganze auch, nur bekomme ich eine javascript Warnung in der setState Zeile.
Weitere Infos was da stört bekomme ich nicht (Auch nicht mit ausführlichen Protokollausgaben) - Ich würde mal vermuten das er sich am Format von nen Date() stört...Edith: Was mir gerade aufgefallen ist: new Date() liefert mir lokale Zeit (aktuell 17:06), in den DP wird aber 16:06 geschrieben. Hat vermutlich nichts mit dem Punkt oben zu tun - Ist trotzdem merkwürdig.
@warhammer73 sagte: in den DP wird aber 16:06 geschrieben.
In den Datenpunkt wird die UTC-Zeit geschrieben. Erzeuge einen String mit der lokalen Zeit mittels
new Date().toLocaleString()Ergebnis: "5.2.2023, 17:28:50"
-
@warhammer73 sagte: in den DP wird aber 16:06 geschrieben.
In den Datenpunkt wird die UTC-Zeit geschrieben. Erzeuge einen String mit der lokalen Zeit mittels
new Date().toLocaleString()Ergebnis: "5.2.2023, 17:28:50"
@paul53 Danke!
... gibts auch noch einen Weg das mir die Protokollausgabe gleich verrät was ihr nicht gefällt?
-
@paul53 Danke!
... gibts auch noch einen Weg das mir die Protokollausgabe gleich verrät was ihr nicht gefällt?
@warhammer73 sagte: Protokollausgabe gleich verrät was ihr nicht gefällt?
Im Tab "Protokolle" steht, wenn der Datenpunkttyp nicht zum Typ des geschriebenen Wertes passt.
-
Hallo,
ich versuche gerade einen Timestamp in einen Datenpunkt zu schreiben.
Der DP wird erzeugt mit:
createState(folderName + '.' + room + ".Lastchange","",{name: "Lastchange", type: 'string', role: 'date'}, function () {});Geschrieben wird mit:
setState(folderName + "." + room + ".Lastchange", new Date(), true);Technisch funktioniert das ganze auch, nur bekomme ich eine javascript Warnung in der setState Zeile.
Weitere Infos was da stört bekomme ich nicht (Auch nicht mit ausführlichen Protokollausgaben) - Ich würde mal vermuten das er sich am Format von nen Date() stört...Edith: Was mir gerade aufgefallen ist: new Date() liefert mir lokale Zeit (aktuell 17:06), in den DP wird aber 16:06 geschrieben. Hat vermutlich nichts mit dem Punkt oben zu tun - Ist trotzdem merkwürdig.
@warhammer73 Laut Doku sollte
role: dateentwederdate (common.type = string - parsable by "new Date(ddd)" string
oder
date (common.type = number - epoch seconds * 1000
sein. Also z.B. geht auch
createState(`${folderName}.${room}.Lastchange`, Date.now(), { name: 'Last change', type: 'number', role: 'date' });Gespeichert wird dann ein Timestamp, aber dank der Rolle zeigt z.B. der Admin-Adapter das in einem lesbaren Format an. Das ist meine bevorzugte Variante, weil man damit am besten weiter arbeiten kann (falls nötig).
-
@warhammer73 sagte: in den DP wird aber 16:06 geschrieben.
In den Datenpunkt wird die UTC-Zeit geschrieben. Erzeuge einen String mit der lokalen Zeit mittels
new Date().toLocaleString()Ergebnis: "5.2.2023, 17:28:50"
@paul53 sagte in Timestamp - Welches Format für DP?:
In den Datenpunkt wird die UTC-Zeit geschrieben. Erzeuge einen String mit der lokalen Zeit mittels
new Date().toLocaleString()Dann aber bitte nicht
role: datesetze, weil dann versucht z.B. der Admin das zu parsen / gibt den Inhalt annew Date(). Und bei einem Deutschen Datumsformat geht das oft schief. Sonst lieber als UTC-String oder halt als Timestamp (s.o.).
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden