tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
320
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    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
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  3. #3
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    Zitat Zitat von deepthroat Beitrag anzeigen
    Was funktioniert denn nicht?

    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
     

  4. #4
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    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;
     

  5. #5
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    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 -.- xD
    Geändert von Paper (06.10.11 um 10:15 Uhr)
     

  6. #6
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    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
     

  7. #7
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

    Code c:
    1
    
    strftime (buffer,80,"%H:%M:%S %m/%d/%Y",timeinfo);
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  8. #8
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    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);
     

  9. #9
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von Paper Beitrag anzeigen
    Zur Zeit sieht mein Code für das Datum so aus
    Das ist doch der gleiche Code wie in Beitrag 5 und 6.

    Verwende einfach strftime.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  10. #10
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    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.
     

  11. #11
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von Paper Beitrag anzeigen
    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.
    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.

  12. #12
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    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
     

  13. #13
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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

  1. Datum umrechnen in timestamp?
    Von Suchfunktion im Forum PHP
    Antworten: 3
    Letzter Beitrag: 10.06.07, 04:20
  2. Datum in Unix-Timestamp umwandeln
    Von qsrs im Forum PHP
    Antworten: 14
    Letzter Beitrag: 12.05.07, 16:49
  3. Datum in Unix timestamp konvertieren
    Von chaosgenie im Forum Java
    Antworten: 1
    Letzter Beitrag: 03.01.07, 13:17
  4. Oracle 9.2i unix timestamp sekunden in datum umrechnen
    Von tplanitz im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 06.09.06, 07:22
  5. unix-timestamp mit excel umrechnen
    Von droni im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 22.05.06, 21:51