ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
320
320
EMPFEHLEN
-
Hallo leute ich muss nochmal nerven

Ich habe ein Problem und zwar schaff ich es nicht einen Unix Timestamp in ein lesbares Datum und Uhrzeit zu konvertieren. :/ ich verzweifel da schon. Ich bin überhaupt nicht C++ begabt
Kann mir einer bitte helfen?
Gruß Paper
-
06.10.11 09:24 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Was funktioniert denn nicht?
Siehe z.B. http://www.cplusplus.com/reference/c...time/strftime/
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Ich habe keine Ahnung wie ich das machen soll. Mein Code sieht bis jetzt so aus.
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
ifstream file; file.open ("squid1.log"); //Prüft ob file offen ist if (file.is_open()) { string TiSt; //Ließt den ersten String und ignoriert den Rest while (file >> TiSt && file.ignore(numeric_limits<streamsize>::max(), '\n')) { cout <<TiSt << endl; } } //Fehler ausgabe wenn die Datei nicht geöffnet/gefunden werden kann if (!file.eof()) { cerr << "Fehler beim ausgeben der Datei.";} else { //Wenn die Datei geöffnet/gefunden wurde cout <<endl <<endl; cout <<"\t Zum schliessen druecken Sie Enter" <<endl <<endl; }
und ich muss es halt i.wie schaffen "TiSt" (was ja den Timestamp beinhaltet) weiter zu verwenden und das umzuwandeln und mirhalt wieder anzeigen zulassen. Da hab ich halt überhaupt keine Ahnung wie ich das anstellen soll. Programmieren ist garnicht meins
-
Ich habe mir mal das hier zusammen gebastelt
ist das wenigstens ein kleiner lösungsansatz?
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12
char buffer[80]; time_t TiSt; struct tm * timeinfo; time (&TiSt); timeinfo = localtime (&TiSt); strftime(buffer, sizeof(80), "[%H:%M:%S %m/%d/%Y]", localtime(&TiSt)); puts (buffer); cout << TiSt;
-
Hab was anderes versucht jetzt bekomme ich wenigstens ein Datum.
Folgender Code:
Code cpp:1 2 3
time_t TiSt = time (NULL); struct tm * timeinfo = localtime ( &TiSt ); printf ("%02d.%02d.%04d\n", timeinfo->tm_mday, timeinfo->tm_mon, timeinfo->tm_year+1900);
jetzt muss ich da nur noch eine Uhrzeit hinbekommen
und das ganze halt bis zum ende des Accesslogs 
korrektur: das Datum ist falsch -.- xDGeändert von Paper (06.10.11 um 10:15 Uhr)
-
Ich hab es für die Uhrzeit mal ähnlich versucht und es sieht momentan so aus
Code cpp:1 2 3 4 5 6 7 8
time_t TiSt = time (NULL); struct tm * timeinfo = localtime ( &TiSt ); //Datum anzeigen printf ("%02d.%02d.%04d", timeinfo->tm_mday, timeinfo->tm_mon, timeinfo->tm_year+1900); //Uhrzeit anzeigen printf ("%H:%M:%S", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
jedoch Stürzt mein Programm ab wenn ich das mit der Uhrzeit reinbringe, wenn ich es weg lasse funktioniert es super. Das ist vielleicht ein mist eh
-
06.10.11 11:31 #7
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Du mußt doch nun wirklich nur mal den Beispielcode in dem Link den ich dir gegeben habe anschauen.
sizeof(80) macht keinen Sinn.
%H %M %S bedeutet bei printf etwas ganz anderes als bei strftime.
GrußCode c:1
strftime (buffer,80,"%H:%M:%S %m/%d/%Y",timeinfo);
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Diese geschichte mit dem sizeof(80) nutz ich nichtmehr
hab ich selbst gesehen das es i.wie schwachsinn war, habe da nicht nachgedacht.
Zur Zeit sieht mein Code für das Datum so aus
Code cpp:1 2 3 4 5
time_t TiSt = time (NULL); struct tm * timeinfo = localtime ( &TiSt ); //Datum anzeigen printf ("%02d.%02d.%04d", timeinfo->tm_mday, timeinfo->tm_mon, timeinfo->tm_year+1900);
-
06.10.11 11:52 #9
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Das gibt mir nur die aktuelle Uhrzeit und das aktuelle Datum aus. Ich muss es aber so machen das die werte einer .log Datei in ein Datum und eine Uhrzeit umgewandelt werden. Vielleicht habe ich mein Problem doof erklärt oder heute ist einfach nicht mein Tag.
-
06.10.11 12:11 #11
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Dann mußt du dir ja erstmal das Datum (welches? mtime, atime, ctime?) der Datei besorgen.
Das geht z.B. mit stat. http://linux.die.net/man/2/stat
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
So ein neuer Tag heute wird alles besser
vielleicht hab ich es doof erklärt.
In der Datei sind Unix timestamps eingetragen diese soll ich mir als Uhrzeit und Datum umrechnen lassen. Ich habe diese Timestamps als string momentan und den würde ich weiter verwenden um mir das umrechnen zulassen. wenn das geht
-
07.10.11 14:57 #13
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Also hast du eine Ziffernfolge in einem String?
Dann könntest du sscanf verwenden um diese z.B. in einen double zu verwandeln.
Dann castest du diesen double in einen time_t und rechnest damit weiter.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Datum umrechnen in timestamp?
Von Suchfunktion im Forum PHPAntworten: 3Letzter Beitrag: 10.06.07, 04:20 -
Datum in Unix-Timestamp umwandeln
Von qsrs im Forum PHPAntworten: 14Letzter Beitrag: 12.05.07, 16:49 -
Datum in Unix timestamp konvertieren
Von chaosgenie im Forum JavaAntworten: 1Letzter Beitrag: 03.01.07, 13:17 -
Oracle 9.2i unix timestamp sekunden in datum umrechnen
Von tplanitz im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 06.09.06, 07:22 -
unix-timestamp mit excel umrechnen
Von droni im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 22.05.06, 21:51





Zitieren

Login






