PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datumsstring in Timestamp umwandeln



7.e.Q
03-06-2005, 07:24
Hi Leute,

eine Frage, die wahrscheinlich schon häufiger gestellt wurde, ist sicher wie wandle ich in C/C++ einen Datumsstring in beispielsweise folgendem Format

"MM/DD/YYYY - hh:mm:ss"

in einen gültigen Unix Timestamp um? Muss ich den wirklich selbst berechnen aus den einzelnen Stellen? Oder gibt es eine Funktion, die das bereits kann?

Ich habe weder in Google noch hier in der Suche die richtige Antwort auf die Frage bekommen.

Danke

Gruß,
Hendrik

locus vivendi
03-06-2005, 09:10
Boost hat da was brauchbares. Wenn du willst kannst du dir da die Date-Time-Bibliothek anschauen. Aber das obige Format scheint mir etwas ungewöhlich zu sein, da wirst du vermutlich auch mit Boost nicht herum kommen, selber etwas zu parsen. Andere Formate wie "YYYY-MM-DD hh:mm::ss" sind allerdings schon eingebaut.

Hilft dir das weiter?

Joghurt
03-06-2005, 13:01
#include <time.h> // C++ kann auch <ctime> nehmen
time_t StringToTimestamp (char* str)
{
struct tm t;
strptime(str, "%m/%d/%Y - %H:%M:%S", &t);
return mktime(&t);
}

locus vivendi
03-06-2005, 13:18
Ich glaube, wenn strptime zur Verfügung steht, ist Joghurts Vorschlag meinem vorzuziehen...

Es sei denn, du kannst auch noch anderweitig die umfangreiche Date-Time Bibliothek verwenden.

7.e.Q
29-06-2005, 13:30
Ho... den Fred hab ich völlig vergessen... :eek:


danke! :)