CString (zb 01.08.2005) in CTime umwandeln
-
Hallo
Ich lese aus einer CSV Datei Daten aus, in der auch ein Datum gespeichert ist. Jetzt muss ich aber in meinem Programm mit dem Datum rechnen können, daher will ich den CString in ein CTime umwandeln. Meine Frage wie kann ich das machen, meine bisherigen Versuchen liefen alle nicht.
-
Entweder per COleDateTime::ParseDateTime oder von "Hand" via sscanf
-
Ich habe das mit dem COleDateTime ausprobiert:
COleDateTime StartL; StartL.ParseDateTime(StartLehre);StartLehre ist ein CString und beinhaltet das datum 01.08.2005. Als Resultat also als StartL gibt es 38565.000000000000 zurück. Meiner Meinung nach sollte das Resultat aber min. 10 stellig sein, was ist nicht gut an diesem Resultat?
-
John_Aston schrieb:
StartLehre ist ein CString und beinhaltet das datum 01.08.2005. Als Resultat also als StartL gibt es 38565.000000000000 zurück. Meiner Meinung nach sollte das Resultat aber min. 10 stellig sein, was ist nicht gut an diesem Resultat?
Wieso? Das Ergebnis ist korrekt. Es gibt die Tage nach Mitternacht vom 30 Dezember 1899 an.
Das ist das Format von COleDateTime. Was kommt Dir den komisch vor?
-
wenn ich aus einem Date time picker das datum lese bekomme ich solche daten 1154669437 mein resultat sollte auch etwa so sein.
-
Dann solltest du das Ergebnis eventuell in einen CTime umrechnen:
SYSTEMTIME t; StartL.GetAsSystemTime(t); CTime StartT(t);
-
John_Aston schrieb:
wenn ich aus einem Date time picker das datum lese bekomme ich solche daten 1154669437 mein resultat sollte auch etwa so sein.
Und was für eine Funktion verwendest Du bitte um die Daten aus dem CDateTimeCtrl abzuholen?
Hoffentlich die Version die COleDateTime returniert:BOOL GetTime( COleDateTime& timeDest ) const;