Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - LongTimeFormat und TimeToStr fehlerhaft?
jackle32 - So 19.01.14 00:59
Titel: LongTimeFormat und TimeToStr fehlerhaft?
Hallo zusammen,
ich spiele gerade etwas mit LongFormatString herum. Ziel soll es sein eine Wettkampfauswertung zu erzeugen. Da man dort ja meist nur Minuten, Sekunden und Millisekunden braucht, muss dafür etwas getan werden, damit man das auch bekommt.
Für mein grundsätzliches Verständnis wollte ich eine kleine Versuchsreihe machen und hab dabei ein komisches Verhalten bemerkt.
Mein Sourcecode sieht wie folgt aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure THauptfenster.Button16Click(Sender: TObject); var temp: string; timetemp: TDateTime; begin temp :=FormatSettings.LongTimeFormat; timetemp := 0.00265987; self.Memo1.Lines.Add(FormatSettings.LongTimeFormat); self.Memo1.Lines.Add(TimeToStr(timetemp));
FormatSettings.LongTimeFormat := 'mm:ss.z'; self.Memo1.Lines.Add(FormatSettings.LongTimeFormat); self.Memo1.Lines.Add(TimeToStr(timetemp));
FormatSettings.LongTimeFormat := 'hh:mm:ss.z'; self.Memo1.Lines.Add(FormatSettings.LongTimeFormat); self.Memo1.Lines.Add(TimeToStr(timetemp));
FormatSettings.LongTimeFormat := 'ss.z'; self.Memo1.Lines.Add(FormatSettings.LongTimeFormat); self.Memo1.Lines.Add(TimeToStr(timetemp));
FormatSettings.LongTimeFormat := temp; end; |
Also nur eine Zeit in verschiedenen Formaten ausgeben. Das Ergebnis sieht aber so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| hh:mm:ss 00:03:49 mm:ss.z 12:49.813 hh:mm:ss.z 00:03:49.813 ss.z 49.813 |
Kann mir jemand erklären wo die markierte 12 herkommt? Eigentlich sollte da ja auch '03' stehen?!?!
Gruß,
Jack
jfheins - So 19.01.14 03:29
Die
Hilfe [
http://docwiki.embarcadero.com/Libraries/XE3/de/System.SysUtils.DateTimeToString] schreibt:
Zitat: |
mm | Zeigt den Monat als Zahl mit führender Null an (01-12). Wenn auf den Bezeichner mm unmittelbar der Bezeichner h oder hh folgt, werden an Stelle des Monats die Minuten angezeigt. |
Mal von dem Übersetzungsfehler in der Hilfe abgesehen, steht weiter unten:
Zitat: |
n | Zeigt die Minute ohne führende Null an (0-59).
nn | Zeigt die Minute mit führender Null an (00-59). |
Rätsel gelöst?
jackle32 - So 19.01.14 13:24
Ja danke Rätsel gelöst.
Nur noch kurz. Wie finde ich diese Erklärung in der Hilfe? Bei TimeToStr und LongTimeFormat hab ich das nicht gesehen.
jfheins - So 19.01.14 16:15
Ja, ist etwas doof gemacht. Die Erläuterung hätte man da ruhig nochmal hinschreiben können oder ZUMINDEST VERLINKEN.
Ich habe nach "LongTimeFormat" gesucht, da war es der dritte Treffer.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!