time() in String konvertieren
Verfasst: Sa Jun 06, 2009 1:45 pm
Hi,
ich wollte die Aktuelle Uhrzeit (inlusive Datum) in einen String speichern und diesen dann testweise ausgeben. Die Form, in der das Datum im String gespeichert wird, sollte so aussehen:
Sun, 06 Nov 1994 08:49:37 GMT
Dazu jetzt mal der folgende Code:
Der Code lässt sich soweit auch prima compilieren, bloß is die Ausgabe etwas kryptisch:
Sun ♠ Jun 3♫:▼:♣ GMT
Dies liegt meiner Vermutung nach an den Zeilen wie dieser hier "datetimeinfo->tm_sec" die ihre Werte als int übergeben, und somit das Zeichen mit dem entsprechenden Zahlenwert aus dem ASCII Zeichensatz genommen wird. Wie mach ich dies jetzt so, dass die Zahl richtig angezeigt und in den String geschrieben wird (am besten mit führenden Nullen)?
Eine Möglichkeit wäre die ganzen Zahlen in Array zu speichern, gibt es bessere?
Betriebsystem wäre Windows und Compiler GCC (bzw. MinGW).
Mfg.
hackmack
ich wollte die Aktuelle Uhrzeit (inlusive Datum) in einen String speichern und diesen dann testweise ausgeben. Die Form, in der das Datum im String gespeichert wird, sollte so aussehen:
Sun, 06 Nov 1994 08:49:37 GMT
Dazu jetzt mal der folgende Code:
Code: Alles auswählen
string Date;
time_t seconds;
seconds = time(NULL);
string weekday_values[] = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
string month_values[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Ocr", "Nov", "Dec"};
std::tm *datetimeinfo;
datetimeinfo = std::localtime(&seconds);
//Generate a String with the time in the format "Sat, 6 Jan 2009 08:24:56 GMT"
Date += weekday_values[datetimeinfo->tm_wday];
Date += " ";
Date += datetimeinfo->tm_mday;
Date += " ";
Date += month_values[datetimeinfo->tm_mon];
Date += " ";
Date += (1990 + datetimeinfo->tm_year);
Date != " ";
Date += datetimeinfo->tm_hour;
Date += ":";
Date += datetimeinfo->tm_min;
Date += ":";
Date += datetimeinfo->tm_sec;
Date += " GMT";
cout << Date;
Sun ♠ Jun 3♫:▼:♣ GMT
Dies liegt meiner Vermutung nach an den Zeilen wie dieser hier "datetimeinfo->tm_sec" die ihre Werte als int übergeben, und somit das Zeichen mit dem entsprechenden Zahlenwert aus dem ASCII Zeichensatz genommen wird. Wie mach ich dies jetzt so, dass die Zahl richtig angezeigt und in den String geschrieben wird (am besten mit führenden Nullen)?
Eine Möglichkeit wäre die ganzen Zahlen in Array zu speichern, gibt es bessere?
Code: Alles auswählen
string Zahlen[] = {"01", "02", "03", ...};
Mfg.
hackmack