Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parsen: Platzhalter / oder von bis

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Parsen: Platzhalter / oder von bis

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      Ioniq-2018 last edited by

      Hi,
      ich möchte gerne aus diesem String:

      Sonnenaufgang":"val":"2020-11-30T07:14:06.425Z"
      

      nur die 07:14 auslesen und das am liebsten noch als Zahl, also 0714.

      1. Frage: gibt es Platzhalter, wo ich z.Bsp sagen kann ab:
        Sonnenaufgang":"val":"????-??-??T
        oder
      2. Frage:
        Starte nach Sonnenaufgang von Zeichen 28 bis 33

      Ich bin mir ganz sicher, wenn man weiß wie es geht, ist es ganz einfach 🙂

      UncleSam paul53 2 Replies Last reply Reply Quote 0
      • UncleSam
        UncleSam Developer @Ioniq-2018 last edited by

        @Ioniq-2018 "2020-11-30T07:14:06.425Z" ist ja ein gültiges JavaScript Datum. Damit solltest du ganz einfach ein Datumsobjekt bekommen können:

        let input = 'Sonnenaufgang":"val":"2020-11-30T07:14:06.425Z"';
        let parts = input.split('":"');
        let date = new Date(parts[2].replace('"', ''));
        

        Auffällig ist, dass deine Zeit als UTC (Z=Zulu) Zeit angegeben wird. Wenn du den Code oben ausführst, wird dir die Zeit dann in Lokaler Zeit angegeben (also 08:06).

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Ioniq-2018 last edited by paul53

          @Ioniq-2018 sagte:

          nur die 07:14 auslesen

          Das ist UTC. Hole doch gleich die Zeit des Sonnenaufgangs in Lokalzeit ab:

          formatDate(getAstroDate("sunrise"), "hh:mm")
          
          I 1 Reply Last reply Reply Quote 0
          • I
            Ioniq-2018 @paul53 last edited by

            @UncleSam
            Danke für das Beantworten der Frage. Aber ich denke es wird dann die Uhrzeit 14:06 raus kommen. die 07 hängt direkt hinter dem T ! Und das mit dem Z, da muss ich mal nachschauen.

            @paul53
            Das wäre die Antwort auf Frage Nr. 3, (die ich nicht gestellt habe) dass es bestimmt noch was einfacheres gibt. Trotzdem vielen Dank. Wahrscheinlich werde ich das aber sogar übernehmen.
            Aber die beiden Fragen von oben sind noch offen. Weil die Lösung davon würde ich noch in andere Abfragen einbauen wollen.

            Homoran paul53 UncleSam 3 Replies Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @Ioniq-2018 last edited by

              @Ioniq-2018 sagte in Parsen: Platzhalter / oder von bis:

              Aber die beiden Fragen von oben sind noch offen

              Das sind IMHO keine Zwei Fragen, sondern nur ein.
              ich weiß nicht was du mit Platzhalter meinst.

              T(.{5}) holt dir was du willst

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Ioniq-2018 last edited by paul53

                @Ioniq-2018 sagte:

                Aber die beiden Fragen von oben sind noch offen.

                Eine Platzhalter-Lösung kenne ich nicht. Aber einen Teilstring zu extrahieren ist einfach. Wenn das "T" nur einmal vorkommt, z.B. so:

                let input = '"Sonnenaufgang":"val":"2020-11-30T07:14:06.425Z"';
                let pos = input.indexOf('T') + 1;
                let time = input.substr(pos, 5);
                

                Der Wert sieht übrigens nach einem JSON aus.

                1 Reply Last reply Reply Quote 0
                • UncleSam
                  UncleSam Developer @Ioniq-2018 last edited by

                  @Ioniq-2018 sagte in Parsen: Platzhalter / oder von bis:

                  @UncleSam
                  Danke für das Beantworten der Frage. Aber ich denke es wird dann die Uhrzeit 14:06 raus kommen. die 07 hängt direkt hinter dem T ! Und das mit dem Z, da muss ich mal nachschauen.

                  Hast du es ausprobiert?! Wie gesagt, der Text ist ein korrekter JavaScript Date Wert in UTC. Wenn ich das in der Konsole ausführe, kommt folgendes raus:
                  5b2f59f9-03d8-431e-b47c-8166e9b0e901-image.png

                  Und wenn du dir das Problem wirklich kompliziert machen willst, mit etwas was mit Platzhaltern verglichen werden kann. Dann versuch den folgenden regulären Ausdruck:

                  input.replace(/^.+T(\d+):(\d+):\d+.+$/, '$1$2');
                  

                  Und damit wir nicht wieder die Diskussion von oben haben:
                  299c3a5b-b223-412e-84ac-775404381791-image.png

                  1 Reply Last reply Reply Quote 0
                  • I
                    Ioniq-2018 last edited by

                    Danke für eure Tipps. Damit komme ich gut weiter. Übrigens scheint der Platzhalter der "." zu sein. So wie das "*" bei Windows.

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Ioniq-2018 last edited by

                      @Ioniq-2018 sagte:

                      Übrigens scheint der Platzhalter der "." zu sein.

                      Ja, wenn man RegExp verwendet.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      729
                      Online

                      32.0k
                      Users

                      80.5k
                      Topics

                      1.3m
                      Posts

                      parsen platz überspringen
                      4
                      9
                      431
                      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