time_t in format 2011-07-6-10:52:08 umwandeln
-
Hallo,
ich will dateinamen nach dem datum und uhrzeit bennen undzwar so, dass sie automatisch nach neuheit sortiert werden, wenn ich nach dem namen ordne.
Mein Ansatz bisher ist:time_t now = time(0); string s(ctime(&now)); string day = s.substr(8,2); string clock = s.substr(11,8); string year = s.substr(20,4); string month = s.substr(4,3); string filename = year+"-"+month+"-"+day+"-"+clock; cout << filename << endl;
Ausgabe:
2011-Jul-06-10:51:04
Das einzige, das stört ist das "Jul".
Problem: Der Monatsname ist keine Zahl...
Muss ich da jetzt alle 12 monatsnamen mit else if durchgehen und umwandeln, oder gibts da ne besser möglichkeit?
-
http://www.cplusplus.com/reference/clibrary/ctime/strftime/
Funktioniert so ähnlich wie sprintf in C, bloß mit Zeit.
-
Danke!
Genau das, dass ich gebraucht habe!
-
Die modernere Variante läuft über std::time_put ein Beispiel dazu findest Du hier bei der Ausgabe der aktuellen Uhrzeit (2. Listing mit "// -- Datei 'time_put.h'").