Problem mit Datumsformat!
-
Hallo Forum,
wie kann ich aus einen CString der ein Datum enthält das Jahr Monat und Tag extrachieren ohne die CString Funktionen zu benutzen,
das Datum steht in diesem Format:
Bsp.:
Fri, 21 Oct 2005 14:07:26 GMT
das "Fri," und "GMT" müssen hier raus!
Die Funktion von COleDateTime::ParseDateTime() bricht hier ab wegen den genannten
Teilstrings Fri, und GMT
Gibts welche Funktionen von CTime die das erledigen können ohne das ich mit
CString::Remove(L"GMT"); usw.
arbeiten muß?
Und das Datum ist die Zeit der letzten aktuallisierung einer Datei!
Also so was wie GetLastModified();grüsse
pixel
-
Was spricht denn dagegen, den CString vorher passend aufzubereiten?
Btw, wenn du das Format kennst, könntest du die Einzelteile des Datums auch von Hand (sscanf()) dort auslesen und daraus deinen CTime-Wert zusammenbauen.
-
Hast bei ParseDateTime einfach mal mit einer LCID
LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);versucht?
-
Hallo Martin,
nein hab ich nicht, der Grund warum ich nach anderen Lösung suche ist der das ich
u.U. viele Dateien habe, dan würde ich in einer Schleife zu viele CString aufrufe haben, ich hab das mitLCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
noch nicht probiert!!!
also so ist jetzt:
if(L"" != csLastModified) { // csLastModified hat diesen Format: Fri, 21 Oct 2005 14:07:26 GMT csLastModified.Delete(0, csLastModified.Find(',')+1); csLastModified.Replace(L"GMT",L""); csLastModified.TrimLeft(); csLastModified.TrimRight(); //cTime = (CTime)csLastModified; //csTimeCurr = cTime.Format(csTimeFormatW3C); cOleTime.ParseDateTime(csLastModified); CTime cTime(cOleTime.GetYear(), cOleTime.GetMonth(), cOleTime.GetDay(),cOleTime.GetHour(), cOleTime.GetMinute(), cOleTime.GetSecond()); csTimeCurr = cTime.Format(csTimeFormatW3C); .... // }das ist ine einer Schleife, bei vielen Dateien hab ich bedenken wegen der Geschwindigkeit!
mfg
pixel
-
Wie kann ich dann das licd verwenden?
COleDateTime.ParseDateTime() funktioniert nur mit Deutschen Monaten,
z.B.:CString csTime = L"21 Oct 2005 11:49:32"; COleDateTime::ParseDateTime(csTime); // Fehler, wegen "Oct" csTime = L"21 Okt 2005 11:49:32"; COleDateTime::ParseDateTime(csTime); // ok, da jetzt nicht "Oct" sondern "Okt" steht // selbe problem mit anderen Monaten, ich kann aber den gelesenen Datum nicht beeinflußen???
pixel
-
pixel schrieb:
u.U. viele Dateien habe, dan würde ich in einer Schleife zu viele CString aufrufe haben, ich hab das mit
LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
noch nicht probiert!!!
Dann solltest du es mal probieren

LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT); ... //in der Schleife: time.ParseDateTime(scTime,0,lcid);
-
Danke, funktioniert bestens!

MFG
pixel