timeinfo

lindin

Erfahrenes Mitglied
Hallo!

Ich frag jetzt einfach mal hier, obwohl ich hier wohl falsch bin!

Ich möchte möchte etwas in eine Struktur "struct tm" schreiben, dazu fehlt mir die passende Funktion!

Problem: ich habe einen Zeitstempel als String und nicht als ZAhl, jetzt müßte ich den String, zB: "20040816151516" in das Format time_t umwandeln!

HAt jemand eine Idee, wie ich das bewerkestelligen kann?
 
struct tm und time_t sind zwei verschiedene Sachen.
In die struct tm ist es einfacher, Sekunden usw. einzutragen. Die Werte musst du dir allerdings einzeln aus deinem String herausparsen. Also z.B. die ersten 2 (oder 4) Zeichen nehmen und in int umwandeln und dann in dein Zeitstruct reinschreiben, dann die nächsten Zeichen nehmen usw.

Ich liste mal ein paar Stichworte auf:
- struct tm *gmtime( const time_t *timer );
- time_t mktime( struct tm *timeptr );
Umwandlen in time_t bzw. umgekehrt.

Hast du dir mal überlegt, CTime zu verwenden?
 
Code:
len=strlen(buf); //in buf steht der String
for(a=len-1;a>-1;a--){
      b=atoi(buf+a);
      testzahl[a]=b;
      buf[a]='\0';
}
year=testzahl[0]*1000+testzahl[1]*100+testzahl[2]*10+testzahl[3];
month=testzahl[4]*10+testzahl[5];
day=testzahl[6]*10+testzahl[7];
hour=testzahl[8]*10+testzahl[9];
minute=testzahl[10]*10+testzahl[11];
sec=testzahl[12]*10+testzahl[13];

So hab ich jetzt gemacht, ich hoffe, das ist jetzt nicht zu umständlich, hauptsache es klappt, ich mach mir dann selber daraus ein 'schön' formatiertes Datum! :)
 
gmtime wird aber eine time:t-Variable übergeben, die ich ja nunmal nicht habe!
Deswegen muß ich ja den String erstmal auseinanderpflücken!
 
Aber mit den oben von mir erwähnten Funktionen gmtime() und mktime() kannst du das eine in das andere umwandeln -- das meinte ich.
 

Neue Beiträge

Zurück