INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Zeitstempel berechnen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

23.06.2022, 15:46
Beitrag #1

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 184
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
Zeitstempel berechnen
Hallo zusammen,

im angehängtem Vi versuche ich eine Zeit Differenz zwischen 2 Zeiten auszurechnen.

Im time1 subtrahiere ich zwei gleiche Zeiten als Ergebnis erwarte ich 00:00:00. Stimmt soweit.

Im time2 wandle ich eine Zeit nach UTC. Das Ergebnis was ich erwarte ist UTC +1 +1(Sommerzeit) Stimmt soweit.

Nun möchte ich die Differenz zwischen time 1 und time 2 berechnen und hier bekomme ich ein Problem. Ich würde erwarten das die Zeitdifferenz 2 Stunden beträgt.

Allerdings bekomme ich 3 Stunden Zeit Differenz. Mir ist nicht klar wo die eine Stunde zu viel herkommt bzw. wo mein Denkfehler liegt.

Lg Hubert


Angehängte Datei(en)
19.0 .vi  Zeit_Test.vi (Größe: 8,2 KB / Downloads: 101)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.06.2022, 19:16 (Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2022 19:21 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitstempel berechnen

Akzeptierte Lösung

Hallo Hubert,

Zitat:Mir ist nicht klar wo die eine Stunde zu viel herkommt bzw. wo mein Denkfehler liegt.
Die eine Stunde ist die deutsche Zeitzone aka CET…

Tipp: bei Timestamps musst du IMMER daran denken, welche Darstellung/Formatierung du verwendest!
Und wenn du keine lokale Zeit (inklusive Zeitzonen-anpassung) anzeigen willst, dann solltest du nicht den Code "%<>T" verwenden, sondern "%^<>T" (wie in der Hilfe beschrieben)!
(Im IdeaExchange bei NI gibt es auch einen Vorschlag, bei Timestamps ebenfalls einen "Radix" anzuzeigen, damit man sofort zwischen UTC- und lokaler Anzeige unterscheiden kann…)

Noch ein Tipp: um eine relative Zeit (aka Zeitdifferenz) anzuzeigen, brauchst du keinen Timestamp-Indicator. Eine normale numerische Anzeige reicht völlig aus, wenn du dort dann das Format auf "%<>t" (kleines T!) umstellst:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2022, 10:43
Beitrag #3

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 184
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
RE: Zeitstempel berechnen
Hallo Gerd,

vorab mal Danke für die Info.

Jetzt passt das auch mit der UTC und auch für andere Länder.

Noch folgenden Hinweis. Ich habe unter Win10 die Ländereinstellung zum Testen verändert.
Obwohl sich danach die Uhrzeit am PC richtig einstellt hat, rechnet LV noch mit der alten Zeit Einstellung.
Erst wenn ich LV beende und neu starte wird die Uhrzeit der Ländereinstellung übernommen.

Schönes Wochenende
Gruß Hubert


Angehängte Datei(en)
19.0 .vi  Zeit_Test_2.vi (Größe: 7,6 KB / Downloads: 101)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2022, 10:55
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitstempel berechnen
Hallo Hubert,

Zitat:Obwohl sich danach die Uhrzeit am PC richtig einstellt hat, rechnet LV noch mit der alten Zeit Einstellung.
Erst wenn ich LV beende und neu starte wird die Uhrzeit der Ländereinstellung übernommen.
Ja, richtig beobachtet.

Bestimmte OS-Einstellungen liest LabVIEW NUR beim Start, steht glaube ich auch irgendwo in der Anleitung.
Neben der Zeitzone betrifft das auch das Punkt/Komma in Zahlen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.07.2022, 15:38 (Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2022 09:05 von Hubert R..)
Beitrag #5

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 184
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
RE: Zeitstempel berechnen
Sorry, wenn ich hier nochmals diesen Thread aufmache.

Ich durchsuche eine DB und lasse mir ein Zeitfenster ausgeben. Funktioniert soweit.

Bei der Zeit Angabe muss ich ein Zeit Fenster vorgeben von – bis.

Die DB Abfrage verlangt, dass ich die Zeitangabe als String in einem genau definieren Format übergebe.

Dieses sieht so aus „2022-07-03T02:00:00.000Z“.
Hierzu verwende ich die LV Funktion Format Date/Time String mit dem folgenden time format string %Y-%m-%dT%H:%M:%S%3uZ.

Das Problem ist nun das die folgenden Zeitformatierung bekomme 2022-07-03T02:00:00,000Z.
LV macht das eigentlich richtig und setzt mir hier ein Komma „00,000Z“, weil die Länderspezifische Einstellung Deutschland ist.
Aber damit kann die DB nicht‘s anfangen und gibt einen Fehler aus.

Wenn ich nun den String über die Funktion „Search and Replace String“ das Komma durch einen Punkt ersetze bekomme ich das gewünschte Ergebnis.
Aber die Funktion Search and Replace String gefällt mir an dieser Stelle nicht. Ich würde das gern über den format string erledigen.

Kann mir jemand sagen was ich da ändern muss?

Gruß Hubert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.07.2022, 18:38 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2022 18:46 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitstempel berechnen
Hallo Hubert,

Zitat:Die DB Abfrage verlangt, dass ich die Zeitangabe als String in einem genau definieren Format übergebe.
Dieses sieht so aus „2022-07-03T02:00:00.000Z“.
Hierzu verwende ich die LV Funktion Format Date/Time String mit dem folgenden time format string %Y-%m-%dT%H:%M:%S%3uZ.

Das Problem ist nun das die folgenden Zeitformatierung bekomme 2022-07-03T02:00:00,000Z.
LV macht das eigentlich richtig und setzt mir hier ein Komma „00,000Z“, weil die Länderspezifische Einstellung Deutschland ist.
Aber damit kann die DB nicht‘s anfangen und gibt einen Fehler aus.
Das ist ein Timestamp nach ISO8601. Sollte man überall verwenden IMHO… Big Grin

Das Problem mit LabVIEW: LabVIEW kann zwar per %.;/%,; auf die Verwendung von Punkt/Komma als Dezimaltrennzeichen getrimmt werden - missachtet diese Formatcodes aber bei Timestamps. Du wirst also um ein Search&Replace nicht herumkommen…

Alternativen:
- Du stellst deinen Rechner auf die Verwendung englischer Zahlenformate um. Sollte man IMHO generell für Rechner machen, die mit wissenschaftlichen Daten oder Messgeräte zu tun haben…
- Du stellst in den LabVIEW-Optionen ein, dass LabVIEW NICHT die regionalen Einstellungen des Users verwenden soll. Dann wird generell der Punkt als Dezimaltrennzeichen verwendet…

Nachtrag:
Du weißt, was das "Z" am Ende des Timestamps bedeutet? Und du beachtest es beim Umwandeln von String <-> LV-Timestamp?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.07.2022, 09:05
Beitrag #7

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 184
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
RE: Zeitstempel berechnen
Hallo Gerd,

dann wird mir wohl nichts anderes übrig bleiben als Search&Replace zu verwenden.
Das Z am Ende ist die Abkürzung für Zulu und bedeutet UTC.

Gruß Hubert schöne Woche noch.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CRC 16 berechnen Kiesch 3 2.425 29.07.2022 07:55
Letzter Beitrag: Kiesch
Lightbulb Prüfsumme berechnen für String mit Sonderzeichen luna 3 3.308 22.03.2021 18:32
Letzter Beitrag: jg
Question MONATSverbrauch aus TAGES-String-Array berechnen Blondchen 1 3.975 19.02.2020 16:21
Letzter Beitrag: GerdW
  Endzeit berechnen LZH 1 3.244 31.01.2018 13:54
Letzter Beitrag: GerdW
  Dauer einer Schleife berechnen Marius89 3 5.648 31.10.2016 09:24
Letzter Beitrag: jg
  Mittelwerte berechnen vom Beginn der Messung bis zum Ende Ulmer 6 5.598 30.07.2015 15:17
Letzter Beitrag: Ulmer

Gehe zu: