Seite 1 von 1

OH 3: Konvertierung DateTime Item in LocalDateTime

Verfasst: 11. Apr 2021 14:53
von wykoo
Hallo,

ich arbeite mit
- Raspberry Pi 3
- Raspbian 10
- openHAB 3.1.0.M3
- OpenJDK Zulu 11.45+27

In der .items Datei habe ich folgendes Item deklariert

Code: Alles auswählen

DateTime Sonnenuntergang  "Sonnenuntergang (Ende) [%1$tH:%1$tM]"  <sunset>  (gAstro) channel="astro:sun:local:set#end"}
Nun möchte ich in der .rules Datei den Inhalt in einen LocalDateTime Typ umwandeln um die Berechnungsmethoden ( plusMinutes() usw.) verwenden zu können.

Code: Alles auswählen

var LocalDateTime SonnenAufgangKonvertiert = LocalDateTime.parse(Sonnenaufgang.state.toString)
im LogViewer erhalte ich folgende Fehlermeldung

Code: Alles auswählen

2021-04-11 14:45:28.242 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Home-19' failed: Text '2021-04-11T06:32:00.000+0200' could not be parsed, unparsed text found at index 23 in Home
Das liegt offensichtlich daran, dass Datum und Uhrzeit in der Form: '2021-04-11T06:32:00.000+0200' gespeichert sind.
Der String '2021-04-11T06:32:00' wird problemlos gewandelt.

Was ist an der Umwandlung falsch?

Danke im Voraus
wykoo

Re: OH 3: Konvertierung DateTime Item in LocalDateTime

Verfasst: 11. Apr 2021 18:42
von udo1toni
Das Problem dürfte das +200 am Ende des Strings sein. Du könntest das schmutzig lösen (substring(0,23) oder substring(0,20)) oder aber die korrekte Konvertierung verwenden ;) das wäre dann ZonedDateTime statt LocalDateTime. Laut englischem Forum sowas:

Code: Alles auswählen

val MyJavaTimeFromDateTimeItem = (MyDateTimeItem.state as DateTimeType).getZonedDateTime()

Re: OH 3: Konvertierung DateTime Item in LocalDateTime

Verfasst: 12. Apr 2021 10:09
von wykoo
Das funktioniert !!!

Vielen, vielen Dank