29.01.2010, 15:43
Beitrag #1
|
SeBa
LVF-Guru
Beiträge: 2.025
Registriert seit: Oct 2008
09SP1 & 10 FDS
2008
DE
65xxx
Deutschland
|
String -> Zeitstempel
Hi,
helft mir auf die Sprünge...
warum klappt das linke Beispiel nicht?
Ich bekomme die Zeit im Format des linken Strings (JahrMonatTag-Stunde:Minute:Sekunde ... alles zweistellig). Muss ich mir die doch selbst auseinanderpflücken.
Versagt hier der Formatcode oder hab ich was übersehen?
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
|
|
|
29.01.2010, 15:52
Beitrag #2
|
flizzer82
LVF-Gelegenheitsschreiber
Beiträge: 152
Registriert seit: Sep 2009
11
-
kA
33100
Deutschland
|
String -> Zeitstempel
BOahh geil vieleicht kann ich dir ja wirklich helfen
ALso im linken Bild fehlen die Punkte hinter y m und d
des Rätselslösung??
mfg und schönens we
fizzer
was heisst linkes BIld meinte den linken String
|
|
|
29.01.2010, 16:35
Beitrag #3
|
|
|
29.01.2010, 16:41
Beitrag #4
|
|
|
29.01.2010, 17:04
Beitrag #5
|
SeBa
LVF-Guru
Beiträge: 2.025
Registriert seit: Oct 2008
09SP1 & 10 FDS
2008
DE
65xxx
Deutschland
|
String -> Zeitstempel
' schrieb:Woher soll der Konverter (Format lesen) wissen, was für %y verwendet werden soll? ... Er soll sich an seine eigene Hilfe halten Soll "10" verwendet werden oder "1001" oder gar "100129"?
Wenn da steht "%y." dann ist klar: Alles vom Anfang bis . ist %y - also: "10". Eine eindeutige Zuordnung kann also nur dann gemacht werden, wenn zwischen den einzelnen %-Parametern Trennungszeichen vorhanden sind.
In der Hilfe zu den Formatcodes steht doch folgendes:
<%d> Tag des Monats (01–31)
<%H> Stunde (24-Stunden-Anzeige) (00–23)
<%m> Monat (01–12)
<%M> Minute (00–59)
<%S> Sekunde (00–59)
<%y> Jahreszahl ohne Jahrhundertangabe (00–99)
Im Gegensatz zu "<%Y> Jahreszahl mit Jahrhundertangabe (zum Beispiel 1997)" sind das alles zweistellige Angaben.
Keiner der Formatcodes braucht mehr als zwei Zeichen.
Ich verstehe das dann so, dass %y bedeutet von Anfang bis zwei Zeichen weiter ... also "10"
%y%m%d sollte also auch mit der Angabe 100129 zurechtkommen, da die Zeichenkonvention von [00-99][01-12][01-31] ja eingehalten wird.
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
|
|
|
29.01.2010, 17:23
(Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2010 17:37 von IchSelbst.)
Beitrag #6
|
|
|
29.01.2010, 19:14
Beitrag #7
|
|
|
29.01.2010, 23:21
Beitrag #8
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
String -> Zeitstempel
' schrieb:Oder sagen wir lieber: Ist halt ein Bug drin.
Kaum ein Mensch käme auf die Idee, in so einem Hieroglyphenstring wie 100129.09:58:13 ein Datum zu vermuten. Und weil LabVIEW diesen String auch nicht mag, nennt ihr das einen Bug? Wenn hier überhaupt etwas zu bemängeln ist, dann höchstens das Fehlen eines entsprechenden Hinweises im LV-Hilfetext. daß mit dem Formatstring nicht jeder Blödsinn machbar ist der rein syntaktisch eingentlich gehen müßte.
Das ist nicht nur kein Bug, sondern eine kluge Entscheidung. Denn die Tage und Monate müßten ansonsten grundsätzlich zweistellig sein, d.h. Angaben wie 1.1.10 gingen nicht - und auf diese Freiheit will doch niemand verzichten.
|
|
|
30.01.2010, 11:04
(Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2010 11:22 von IchSelbst.)
Beitrag #9
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
String -> Zeitstempel
' schrieb:Kaum ein Mensch käme auf die Idee, in so einem Hieroglyphenstring wie 100129.09:58:13 ein Datum zu vermuten.
Zumindest der String "100129" alleine ist sehr wohl üblich.
Zitat:Und weil LabVIEW diesen String auch nicht mag, nennt ihr das einen Bug?
Wenn in der Beschreibung steht %y kann zweistellig dezimal sein, dann hat das so zu sein. Zumal ich mir ohne weiteres eine programmatische Umsetzung genau so vorstellen kann. Wenn also die Beschreibung sinnvoll klinkt, ist die Nichtumsetzung ein Bug.
Zitat:Wenn hier überhaupt etwas zu bemängeln ist, dann höchstens das Fehlen eines entsprechenden Hinweises im LV-Hilfetext. ...
Diese Betrachtungsweise ist natürlich erlaubt. Würde es so sein, würde ich ja sagen, dass es ein miserabel integriertes Feature ist.
Zitat:Das ist nicht nur kein Bug, sondern eine kluge Entscheidung. Denn die Tage und Monate müßten ansonsten grundsätzlich zweistellig sein, d.h. Angaben wie 1.1.10 gingen nicht - und auf diese Freiheit will doch niemand verzichten.
Probiers aus.
Und du wirst sehen was alles geht: %y%m%d:00440322, %y.%m.%d:20440322, %y/%m/%d:44/03/22, %y/%m/%d:44/0322 (!), %d%m%y:1.2.33 - u.v.m.
Möglicherweise fehlt in der Beschreibung ein Hinweis, dass das Y-Format in Zusammenhang mit den Betriebssystemeinstellungen zu sehen sind. Für Monat und Tag gibt es da keine Probleme, wohl aber mit dem Jahr. Da kann nämlich voreingestellt werden, ob die Jahreszahl zwei- oder vierstellig ist. Und hier beißt sich bestimmt die Implementation von %y in LV.
Was mir gerade einfällt, Lucki: Hatten wir uns nicht schonmal diskuttiert bezüglich dieses Themas? Ich glaube da war mal was ...
Hier ein Link mit einem ähnlichen Problem. Auch hier wird vermutet, dass der Fehler eher aus dem Zusammenspiel zwischen Betriebssystem und LV folgt.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
| |