TDateTime gibt keinen vollständigen String zurück
-
Guten Morgen,
Ich habe einen AnsiString
AnsiString dStr = "13.09.2005 00:00:00";Ich möchte diesen String erst in TDateTime konvertieren mit
TDateTime dDat = TDateTime(dStr);Und zusätzlich noch mal Formatieren
dDat.FormatString("dd.mm.yyyy hh:nn:ss");Dann als neuen String ausgeben
ShowMessage(AnsiString(dDat));Sollte eigentlich wieder "13.09.2005 00:00:00" zurückgeben.
Tut es aber nicht. Da die Zeit(Time) 00:00:00 ist bekomme ich nur "13.09.2005" zurück.Wie kann ich erzwingen das ich "13.09.2005 00:00:00" zurückbekomme, ohne das ich hinterher nochmal den AnsiString bearbeiten muss.
-
Schon mal so probiert?
ShowMessage(dDat.FormatString("dd.mm.yyyy hh:nn:ss"));Gruß,
Alexander
Noch eine Anmerkung:
Der Cast auf AnsiString ist intern so implementiert, dass es vier verschiedene Fälle gibt.
Abhängig ist dies vom internen Fließkommawert.
1. Wert <= 0 --> kein gültiger Datumswert
2. keine Nachkommastelle --> TDateTime wird als TDate interpretiert (Dein Fall)
3. Wert zwischen 0 und 1 --> TDateTime wird als TTime interpretiert
4. Wert größer 1 mit Nachkommastelle --> TDateTime wird als TDateTime interpretiert
-
Das ShowMessage(AnsiString(dDat)) ist ja schon eine konvertierung in AnsiString.
Ich dachte, das ich das dDat.FormatString("dd.mm.yyyy hh:nn:ss");
so formatieren kann, das ich hinterher nicht mehrShowMessage(dDat.FormatString("dd.mm.yyyy hh:nn:ss"));
schreiben muss, Aber Deine "Noch eine Anmerkung:... " beantwortet meine Frage mit "Nein geht nicht"
Schade und Danke für die schnell Antwort