Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Konvertierung Datum mit formatDate()

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Konvertierung Datum mit formatDate()

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @TT-Tom last edited by haus-automatisierung

      @tt-tom sagte in Konvertierung Datum mit formatDate():

      Nach meinen Tests geht der ioBroker von einem englischen Datum aus, obwohl die Einstellungen im Broker und Raspi auf Deutsch zeigen.

      Richtig, das wird einfach mit new Date(...) intern geparst. Ergo wird nur das erkannt, was Date auch versteht. Die Zeitzonen-Einstellungen des Hosts sind dabei komplett irrelevant. Der gleiche Code soll ja auch schließlich auf allen Systemen identisch funktionieren - wäre ja sonst total seltsam.

      dateString
      A string value representing a date, specified in a format recognized by the Date.parse() method. (These formats are IETF-compliant RFC 2822 timestamps, and also strings in a version of ISO8601.)

      Habe ich hier auch schon dokumentiert:

      https://github.com/ioBroker/ioBroker.javascript/issues/980

      klein0r created this issue in ioBroker/ioBroker.javascript

      open getDateObject doesn't recognize configured date format #980

      T 1 Reply Last reply Reply Quote 1
      • T
        TT-Tom @haus-automatisierung last edited by

        @haus-automatisierung
        danke für die Rückmeldung. Also ist es sinnvoll zur Zeit "moment" zu nutzen?

        haus-automatisierung 1 Reply Last reply Reply Quote 0
        • haus-automatisierung
          haus-automatisierung Developer Most Active @TT-Tom last edited by

          @tt-tom sagte in Konvertierung Datum mit formatDate():

          Also ist es sinnvoll zur Zeit "moment" zu nutzen?

          Wenn genau das deine Anforderung ist, ja. Muss man dann halt als npm Abhängigkeit in den Instanz-Einstellungen des JavaScript-Adaptes hinzufügen und importieren. Ist nicht im Standard enthalten.

          Die Frage ist ja, woher kommt das Datum in diesem Format? Normalerweise sollte das nicht für eine bestimmte Region lesbar gespeichert werden, wenn man damit noch weiterarbeiten möchte.

          T 1 Reply Last reply Reply Quote 0
          • T
            TT-Tom @haus-automatisierung last edited by

            @haus-automatisierung

            der Ursprung ist der ical-Adapter wo die Mülldaten in einem JSON ausgeben werden. Dieses Json wird dann ausgelesen und in 0_userdata Datenpunkte für die Weiterverarbeitung geschrieben (als String). Link zum Script

            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @TT-Tom last edited by

              @tt-tom Okay,

              1. bin ich natürlich schwer enttäuscht, dass dafür nicht mein TrashSchedule-Adapter genutz wird 🙂
              2. stehen doch im JSON des iCal-Adapters die Daten nicht als dd.mm.yyyy, sondern können normal geparst werden?!
              T 1 Reply Last reply Reply Quote 1
              • T
                TT-Tom @haus-automatisierung last edited by TT-Tom

                @haus-automatisierung

                Zu 1. privat nutze ich den natürlich, grade wegen der Vis Einbindung 😊

                Zu 2. die Weiterverarbeitung erfolgt in dem Script von @Armilar für das NSPanel. Bin mit ihm im Kontakt, wo wir Anpassungen durchführen.

                OliverIO haus-automatisierung 2 Replies Last reply Reply Quote 0
                • OliverIO
                  OliverIO @TT-Tom last edited by

                  @tt-tom

                  so wie ich es sehe geht der ical adapter rein nur von einem deutschen datum aus.
                  https://github.com/iobroker-community-adapters/ioBroker.ical/blob/ec0deb8ecb2912647cba747f63dd328b8bceac06/main.js#L1377C1-L1377C1

                  andere lokalizationen sind nicht vorgesehen. dadurch kann der adapter eigentlich nur im deutschsprachigen raum verwendet werden.

                  du könntest momentjs verwenden um das datum wieder zu parsen
                  https://momentjs.com/docs/#/parsing/string-format/
                  und dann in javascript weiterzuverwenden

                  haus-automatisierung 1 Reply Last reply Reply Quote 1
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @OliverIO last edited by haus-automatisierung

                    @oliverio sagte in Konvertierung Datum mit formatDate():

                    dadurch kann der adapter eigentlich nur im deutschsprachigen raum verwendet werden.

                    Mh? Geht es um die HTML-Darstellung? Im JSON kann man jedenfalls wunderbar mit allen Werten arbeiten (mache ich ja im TrashSchedule auch so). Beispiel-JSON aus ical.0.data.table

                    Das kann man alles mit Date parsen:

                    [
                        {
                            "date": "Heute  ",
                            "event": "Biotonne",
                            "_class": "ical_muell ical_today",
                            "_date": "2023-10-25T22:00:00.000Z",
                            "_end": "2023-10-26T22:00:00.000Z",
                            "_IDID": "317008@mymuell.de",
                            "_allDay": true,
                            "_private": false,
                            "_rule": " ",
                            "location": "",
                            "_calName": "muell",
                            "_calColor": "#000000",
                            "_object": {
                                "type": "VEVENT",
                                "params": [],
                                "start": "2023-10-25T22:00:00.000Z",
                                "datetype": "date",
                                "end": "2023-10-26T22:00:00.000Z",
                                "dtstamp": "2023-10-25T22:00:16.000Z",
                                "uid": "317008@mymuell.de",
                                "created": "2022-12-09T11:10:27.000Z",
                                "lastmodified": "2022-12-09T10:11:38.000Z",
                                "sequence": "0",
                                "status": "CONFIRMED",
                                "summary": "Biotonne",
                                "transparency": "OPAQUE",
                                "method": "PUBLISH"
                            }
                        }
                    ]
                    
                    OliverIO 2 Replies Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @haus-automatisierung last edited by

                      @haus-automatisierung

                      ne der iCal-Adapter schreibt in den Datenpunkt direkt das Datum im deutschen Format rein.
                      Daher hat der TE nun Schwierigkeiten das Datum weiterzuverarbeiten, da er es jetzt erstmal wieder parsen muss.
                      besser wäre es, wenn Adapter Datumswerte in der Speicherung als ISO oder als timestamp verwenden würde. Dann kann man damit weiterarbeiten.
                      In eine lokale Darstellung umwandeln sollte man so etwas immer nur kurz vor der Darstellung in auf einem Bildschirm und dafür hat vis ja dann die entsprechenden widgets, bzw. eine eigene Datum-Formatierfunktion

                      haus-automatisierung 1 Reply Last reply Reply Quote 0
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @OliverIO last edited by haus-automatisierung

                        @oliverio sagte in Konvertierung Datum mit formatDate():

                        ne der iCal-Adapter schreibt in den Datenpunkt direkt das Datum im deutschen Format rein.

                        ja, in ical.0.data.html und ical.0.data.text, aber nicht in den ical.0.data.table - und der wird ja im Script verwendet. Siehe Auszug oben. Bitte nicht in die falsche Richtung schicken 🙂 Da braucht man nix mit momentjs im Deutschen Format parsen.

                        EDIT: Okay, und im date-Attribut des JSON, aber da kann auch "Heute" oder "Morgen" drin stehen - siehe Beispiel im vorigen Post. Wäre also eh Quatsch das zu parsen.

                        https://github.com/iobroker-community-adapters/ioBroker.ical/blob/ec0deb8ecb2912647cba747f63dd328b8bceac06/main.js#L549-L552

                        Einfach _date statt date nehmen und fertig.

                        1 Reply Last reply Reply Quote 0
                        • haus-automatisierung
                          haus-automatisierung Developer Most Active @TT-Tom last edited by

                          @tt-tom sagte in Konvertierung Datum mit formatDate():

                          Bin mit ihm im Kontakt, wo wir Anpassungen durchführen.

                          Dann ist es einfach:

                          https://github.com/tt-tom17/MyScripts/blob/039d5689937b58ae87ddb0ba3b8f960d3521fc8e/Sonoff_NSPanel/Abfall_to NSPanel.ts#L81

                          Dort einfach eventStartdatum statt eventDatum nutzen. Dann kann man das auch wieder parsen.

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            TT-Tom @haus-automatisierung last edited by

                            @haus-automatisierung
                            @OliverIO

                            Danke für euren Input, damit habe ich erstmal eine Richtung wie wir weiter machen. Muss mich jetzt nur mit @Armilar abstimmen, wie die Daten übergeben werden sollen.

                            1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @haus-automatisierung last edited by

                              @haus-automatisierung sagte in Konvertierung Datum mit formatDate():

                              Das kann man alles mit Date parsen:

                              ja, das ist alles ISO.
                              Dann weiß ich nicht von was der TE spricht wenn er auf den iCal-Adapter verweist,
                              woher sein Datum dann wirklich kommt.

                              haus-automatisierung 1 Reply Last reply Reply Quote 0
                              • haus-automatisierung
                                haus-automatisierung Developer Most Active @OliverIO last edited by

                                @oliverio sagte in Konvertierung Datum mit formatDate():

                                woher sein Datum dann wirklich kommt.

                                Na aus der Date-Property, welche in meinem Beispiel oben zu "Heute" gewandelt wurde, weil meine iCal-Settings das so vorgeben. Da hattest Du ja schon angemerkt, dass da immer ein MM.DD.(YYYY) Format drin landet.

                                Daher ja der Vorschlag, stattdessen _date zu nutzen, weil das ein ISO-Date ist (und kein formatiertes Datum).

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                504
                                Online

                                31.8k
                                Users

                                80.0k
                                Topics

                                1.3m
                                Posts

                                3
                                15
                                1125
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo