Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Rechenfehler bei "Zeitstempel"

    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

    Rechenfehler bei "Zeitstempel"

    This topic has been deleted. Only users with topic management privileges can see it.
    • rtwl
      rtwl last edited by

      Kann mir jemand erklären, warum hier genau eine Stunde falsch gerechnet wird?
      Ist es möglich, dass der vorherige Zeitstempel noch auf Winterzeit läuft?

      316d92eb-d967-44a6-b8f0-60afd4646a5b-image.png

      21:12:36.313	info	javascript.0 (11896) script.js.Toni.Test: 21:12:36  21:11:31  01:01:04
      

      Diese 4 statt 5 Sekunden stören mich nicht, es werden Rundungsdifferenzen sein. Aber die eine Stunde ist unerwünscht.

      Wie kann ich sonst noch die Differenz zwischen Zeitstempel und vorheriger Zeitstempelkorrekt berechnen?

      1 Reply Last reply Reply Quote 0
      • rtwl
        rtwl last edited by

        Sommer-/Winterzeit ist nicht.

        21:19:45.650	info	javascript.0 (11896) script.js.Toni.Test: 1680635985644 1680635556307 01:07:09
        

        1680635985644 = Tue Apr 04 2023 21:19:45 GMT+0200 (Mitteleuropäische Sommerzeit)
        1680635556307 = Tue Apr 04 2023 21:12:36 GMT+0200 (Mitteleuropäische Sommerzeit)

        Was kann es sonst sein?

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @rtwl last edited by paul53

          @rtwl sagte: Was kann es sonst sein?

          Die Formatierung nach "SS:mm:ss" berücksichtigt die Zeitzone, ist also für Zeitdifferenzen nicht geeignet.
          Es muss um die Zeitzone korrigiert werden.

          G 1 Reply Last reply Reply Quote 0
          • G
            GombersIOB @paul53 last edited by GombersIOB

            @paul53 said in Rechenfehler bei "Zeitstempel":

            Die Formatierung nach "SS:mm:ss" berücksichtigt die Zeitzone, ist also für Zeitdifferenzen nicht geeignet.

            Ich habe das auch gedacht. Aber jetzt habe ich mir folgendes Script geschrieben und dieses Ergebnis erhalten:

            68a36657-5e48-481f-ba50-c03ba31aec5d-grafik.png

            22:04:14.572	info	javascript.0 (1670) Stop script script.js.Zeitstempel
            22:04:14.631	info	javascript.0 (1670) Start javascript script.js.Zeitstempel
            22:04:14.633	info	javascript.0 (1670) script.js.Zeitstempel: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
            22:04:14.633	info	javascript.0 (1670) script.js.Zeitstempel: jetzt: 04.04.2023 - 22:04:14
            22:04:14.633	info	javascript.0 (1670) script.js.Zeitstempel: war: 20.03.2023 - 22:00:00
            22:04:14.633	info	javascript.0 (1670) script.js.Zeitstempel: 22:04:14 22:00:00 00:04:14
            

            Der 20.3. war noch Winterzeit und jetzt haben wir Sommerzeit. (habs jetzt nochmal korrigiert, mit dem richtigen Jahr drin)

            Das Script als ladbares XML:

            <xml xmlns="https://developers.google.com/blockly/xml">
              <variables>
                <variable id="w*]R_0W0$LWQbxQQWUqR">jetzt</variable>
                <variable id=".tl$sA#dc}OTbnTq5%d|">war</variable>
              </variables>
              <block type="variables_set" id="ioY?^NzPWQ8lgiuVMPkP" x="588" y="13">
                <field name="VAR" id="w*]R_0W0$LWQbxQQWUqR">jetzt</field>
                <value name="VALUE">
                  <block type="convert_to_date" id="%5tchnvtHf9|-p2[ZC@T">
                    <value name="VALUE">
                      <block type="procedures_callcustomreturn" id="ax7nC?-p7+8Pq;J4TMX*">
                        <mutation name="jetzt"></mutation>
                      </block>
                    </value>
                  </block>
                </value>
                <next>
                  <block type="debug" id="3Cq^4jL7!+cxxYZxHex6">
                    <field name="Severity">log</field>
                    <value name="TEXT">
                      <shadow type="text" id="Mbj!W^Jxvi@3QnX3k5lf">
                        <field name="TEXT">test</field>
                      </shadow>
                      <block type="text_join" id=";ZAwaYmmhFmPW|507[CC">
                        <mutation items="4"></mutation>
                        <value name="ADD0">
                          <block type="text" id="+a!k0thxyU~T:O]lEt_H">
                            <field name="TEXT">jetzt: </field>
                          </block>
                        </value>
                        <value name="ADD1">
                          <block type="convert_from_date" id="4K~073?!A6pi/t9JiV:C">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                            <field name="OPTION">DD.MM.YYYY</field>
                            <value name="VALUE">
                              <block type="variables_get" id="5q{$:)5=iU(cAaJ-KK3y">
                                <field name="VAR" id="w*]R_0W0$LWQbxQQWUqR">jetzt</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="ADD2">
                          <block type="text" id="!J_mo[+,Sp|+#PU|-4w{">
                            <field name="TEXT"> - </field>
                          </block>
                        </value>
                        <value name="ADD3">
                          <block type="convert_from_date" id="TrWlvpP(iqUcy|/{t]Rm">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                            <field name="OPTION">hh:mm:ss</field>
                            <value name="VALUE">
                              <block type="variables_get" id="?OiD!}Hq:?v3PK#y@;mk">
                                <field name="VAR" id="w*]R_0W0$LWQbxQQWUqR">jetzt</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="variables_set" id="DI`oHxII1,wYsW;os{3D">
                        <field name="VAR" id=".tl$sA#dc}OTbnTq5%d|">war</field>
                        <value name="VALUE">
                          <block type="convert_to_date" id="im|+Y3ZPCL9;LASfLHrL">
                            <value name="VALUE">
                              <block type="procedures_callcustomreturn" id="rHwm[cy3|rK}3J@}1MfN">
                                <mutation name="längerHer"></mutation>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="debug" id="`ndH:dm7nIuroeyaj#$^">
                            <field name="Severity">log</field>
                            <value name="TEXT">
                              <shadow type="text" id="ur=BZAd6=tQ1Yn4qk.#`">
                                <field name="TEXT">test</field>
                              </shadow>
                              <block type="text_join" id="shDSZ+)]UzO?UO$#,X{m">
                                <mutation items="4"></mutation>
                                <value name="ADD0">
                                  <block type="text" id="Gt{/$+a2J#xIOmhR=if=">
                                    <field name="TEXT">war:   </field>
                                  </block>
                                </value>
                                <value name="ADD1">
                                  <block type="convert_from_date" id="yBKnsOIgK%HdA]FdP15E">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                    <field name="OPTION">DD.MM.YYYY</field>
                                    <value name="VALUE">
                                      <block type="variables_get" id="$]r4;cWu6`HXnatMB{wb">
                                        <field name="VAR" id=".tl$sA#dc}OTbnTq5%d|">war</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="ADD2">
                                  <block type="text" id="r*I2pS=vt72,lWG2EF7G">
                                    <field name="TEXT"> - </field>
                                  </block>
                                </value>
                                <value name="ADD3">
                                  <block type="convert_from_date" id="2KkZVwJoI#IVei?R^-L!">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                    <field name="OPTION">hh:mm:ss</field>
                                    <value name="VALUE">
                                      <block type="variables_get" id="pEXtq!-Q9NZjxJhKt6gg">
                                        <field name="VAR" id=".tl$sA#dc}OTbnTq5%d|">war</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="debug" id="q=f4983u8v-2q_nMShcg">
                                <field name="Severity">log</field>
                                <value name="TEXT">
                                  <shadow type="text" id="=rgN!0Q)YcYoxx!t3Yo1">
                                    <field name="TEXT">test</field>
                                  </shadow>
                                  <block type="text_join" id="mu%/,Yqkkt*!ONa_V,um">
                                    <mutation items="5"></mutation>
                                    <value name="ADD0">
                                      <block type="convert_from_date" id="pF85)~7%Z};G5GbkQFJs">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                        <field name="OPTION">hh:mm:ss</field>
                                        <value name="VALUE">
                                          <block type="variables_get" id="kgNUus|CdWLV%_#zeY+5">
                                            <field name="VAR" id="w*]R_0W0$LWQbxQQWUqR">jetzt</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="ADD1">
                                      <block type="text_newline" id="Fu[a=0{Ax_?C^P,Vy`b.">
                                        <field name="Type">\r\n</field>
                                      </block>
                                    </value>
                                    <value name="ADD2">
                                      <block type="convert_from_date" id="H!Qag|*K_TSm}i;pMxPu">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                        <field name="OPTION">hh:mm:ss</field>
                                        <value name="VALUE">
                                          <block type="variables_get" id="fD{}WVHvqF`wM5)%J,Kx">
                                            <field name="VAR" id=".tl$sA#dc}OTbnTq5%d|">war</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="ADD3">
                                      <block type="text_newline" id="w(-:EI9:s+/0F;J(2*cA">
                                        <field name="Type">\r\n</field>
                                      </block>
                                    </value>
                                    <value name="ADD4">
                                      <block type="convert_from_date" id="[%2QKnnglrp]kJ==!w:z">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                        <field name="OPTION">hh:mm:ss</field>
                                        <value name="VALUE">
                                          <block type="math_arithmetic" id="}TVJhUWo`r[YN@W`,_Ay">
                                            <field name="OP">MINUS</field>
                                            <value name="A">
                                              <shadow type="math_number" id="}o~K{n2SYX-!(w4xu=El">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="variables_get" id="7M}@!v=joEQ/BPH`CoA$">
                                                <field name="VAR" id="w*]R_0W0$LWQbxQQWUqR">jetzt</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id="bpF]j=vrd9F@uLnM#z)q">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="variables_get" id="`!+t4ze3wr,~e=L4d#8I">
                                                <field name="VAR" id=".tl$sA#dc}OTbnTq5%d|">war</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
              <block type="procedures_defcustomreturn" id="X}4v~b-?M+=:~uY~YL~_" x="1288" y="63">
                <mutation statements="false"></mutation>
                <field name="NAME">längerHer</field>
                <field name="SCRIPT">bGV0IGRhdGUgPSBuZXcgRGF0ZSgiMy8yMC8yMyIpOw0KZGF0ZS5zZXRIb3VycygyMik7DQpyZXR1cm4gZGF0ZTs=</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomreturn" id="-@OAa%fyS:waGq{?8gLZ" x="1288" y="138">
                <mutation statements="false"></mutation>
                <field name="NAME">jetzt</field>
                <field name="SCRIPT">cmV0dXJuIG5ldyBEYXRlKCk7DQo=</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
            </xml>
            
            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @GombersIOB last edited by paul53

              @gombersiob sagte: Der 20.3. war noch Winterzeit und jetzt haben wir Sommerzeit.

              Der 26.3. hatte 23 Stunden.

              rtwl G 2 Replies Last reply Reply Quote 1
              • rtwl
                rtwl @paul53 last edited by

                @paul53
                Worin liegt hier der Fehler? Die Differenz von 5 Sek wird nicht berechnet.
                0a0ead37-7324-48ff-9e65-71e0026d5ac3-image.png

                22:10:30.561	info	javascript.0 (11896) script.js.Toni.Test: 22:10:25 22:10:30 00:00:00
                
                1 Reply Last reply Reply Quote 0
                • G
                  GombersIOB @paul53 last edited by

                  @paul53 said in Rechenfehler bei "Zeitstempel":

                  Der 26.3. hatte 23 Stunden.

                  Ich weiß jetzt nicht, was mir das sagen soll. Die jetzige Zeit in Winterzeit umgerechnet (also mit Beachtung der Zeitzone) wäre 21:04:14 gewesen.
                  Der Abstand, wenn man die ganzen Tage abzieht, wären also 23:55:46 gewesen und nicht 00:00:04.

                  paul53 rtwl 2 Replies Last reply Reply Quote 0
                  • paul53
                    paul53 @GombersIOB last edited by paul53

                    @rtwl
                    dauer = ende - start (ohne Konvertierung)

                    rtwl 1 Reply Last reply Reply Quote 0
                    • rtwl
                      rtwl @paul53 last edited by

                      @paul53 Stimmt, danke 👍

                      1 Reply Last reply Reply Quote 0
                      • rtwl
                        rtwl @GombersIOB last edited by

                        @gombersiob Bei dir ist es ja das gleiche Problem. Die Zeitumstellung wird nicht berücksichtigt. Daher hast du ja auch die eine Stunde zuviel, genauso wie es bei meinem Problem war.
                        klick mal auf den Link den @paul53 gepostet hat.

                        G 1 Reply Last reply Reply Quote 1
                        • G
                          GombersIOB @rtwl last edited by GombersIOB

                          @rtwl said in Rechenfehler bei "Zeitstempel":

                          Die Zeitumstellung wird nicht berücksichtigt.

                          Das bezweifle ich ja gar nicht - und das zeigt ja auch mein Beispiel. Und ich habe ja auch keine Stunde zuviel.
                          Aber Dein Problem ist doch, dass Du Uhrzeiten hast. 21:12 und 21:11. Der Abstand ist 1 Minute und nicht 1h1m

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            GombersIOB @GombersIOB last edited by

                            @gombersiob

                            Ich habs jetzt begriffen. Ich habs über die Millisekunden-Differenzen nachgerechnet und habs damit dann für mich nachvollziehen können.
                            Danke!

                            G 1 Reply Last reply Reply Quote 1
                            • G
                              GombersIOB @GombersIOB last edited by GombersIOB

                              @gombersiob said in Rechenfehler bei "Zeitstempel":

                              Ich habs jetzt begriffen.

                              Nach einer Nacht ist mir meine Begriffsstutzigkeit von gestern Abend regelrecht peinlich. Insbesondere, weil mir das Datumsformat eigentlich kein Fremdwort ist. Irgendwie war ich völlig auf dem falschen Dampfer. Ich warte auf den Tag, wo ich auf einen Enkeltrick reinfalle.

                              Ich habe meine Erklärung des "Phänomens" jetzt nochmal in ein Programm gepackt:
                              61bf92c3-7d7e-40f4-b62c-2854a7e5a468-grafik.png

                              Das Ergebnis sieht so aus:

                              07:52:23.805	info	javascript.0 (1661) script.js.common.Testen.Zeitrechnungen2: Das interne Format des Start-Timestamps: 1680548400000 - wird für unsere Zeitzone zu dieser Darstellung formatiert: 03.04.2023 - 21:00:00
                              07:52:23.805	info	javascript.0 (1661) script.js.common.Testen.Zeitrechnungen2: Das interne Format des Start-Timestamps: 1680634800000 - wird für unsere Zeitzone zu dieser Darstellung formatiert: 04.04.2023 - 21:00:00
                              07:52:23.805	info	javascript.0 (1661) script.js.common.Testen.Zeitrechnungen2: Die Differenz aus beiden Daten (Ende-Start) ist die Differenz in Millisekunden: 86400000 oder in Stunden: 24
                              07:52:23.805	info	javascript.0 (1661) script.js.common.Testen.Zeitrechnungen2: Der Versuch die Differenz als Datum darzustellen scheitert offensichtlich jenseits von UTC: 02.01.1970 - 21:00:00
                              
                              rtwl 1 Reply Last reply Reply Quote 0
                              • rtwl
                                rtwl @GombersIOB last edited by rtwl

                                @gombersiob die ganz letzte variable ist Ende statt Gesamt Darum hast du 21 Uhr als Ergebniss. Bei Gesamt wird diese auf 0:00 Uhr sein.

                                und 24 Std nach dem 1.1.1970 ist ja auch der 2. Jänner 1970 um 0:00

                                aber man kann ja auch eine Differenz nicht als Datum ausgeben.

                                G 1 Reply Last reply Reply Quote 0
                                • G
                                  GombersIOB @rtwl last edited by

                                  @rtwl said in Rechenfehler bei "Zeitstempel":

                                  die ganz letzte variable ist Ende statt Gesamt

                                  Du hast recht - Copy&Paste. Ich wusste was rauskommen würde, darum habe ich nicht mehr richtig geschaut (war so klein geschrieben 😠 )

                                  Jetzt nochmal:
                                  ea016bd1-234a-4ee0-9628-2ce33a798a21-grafik.png

                                  08:46:29.776	info	javascript.0 (1661) script.js.common.Testen.Zeitrechnungen2: Das interne Format des Start-Timestamps: 1680548400000 - wird für unsere Zeitzone zu dieser Darstellung formatiert: 03.04.2023 - 21:00:00
                                  08:46:29.777	info	javascript.0 (1661) script.js.common.Testen.Zeitrechnungen2: Das interne Format des Start-Timestamps: 1680634800000 - wird für unsere Zeitzone zu dieser Darstellung formatiert: 04.04.2023 - 21:00:00
                                  08:46:29.777	info	javascript.0 (1661) script.js.common.Testen.Zeitrechnungen2: Die Differenz aus beiden Daten (Ende-Start) ist die Differenz in Millisekunden: 86400000 oder in Stunden: 24
                                  08:46:29.777	info	javascript.0 (1661) script.js.common.Testen.Zeitrechnungen2: Der Versuch die Differenz als Datum darzustellen scheitert offensichtlich jenseits von UTC: 02.01.1970 - 01:00:00
                                  

                                  Da sieht man jetzt auch die 1 "zusätzliche" Stunde, dadurch dass sich MEZ um 1 Stunde von UTC unterscheidet.

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  530
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  3
                                  15
                                  642
                                  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