Hallo!
Ich bin gerade dabei in Tool zu schreiben welche verschiedenste Zeit/Datumsformate konvertiert.
Steh aber noch ganz am Anfang.
Ich würde gerne meine berechnungen auf utc-basis durchführen und mich anschließend mit zeitzonen/sommerzeit/winterzeit herumschlagen.
nun bin ich gerade ein wenig verwirrt.
time(0) liefert mir doch die unixzeit in UTC warum sind nun aber alle ausgaben anders?
ich mein der unterschied von gmtime zu localtime ist korrekt aber ich würde gerne haben das die zeit in UTC folgende ist die ich erstellt habe(also 15:22:13)
Ich bin gerade dabei in Tool zu schreiben welche verschiedenste Zeit/Datumsformate konvertiert.
Steh aber noch ganz am Anfang.
Ich würde gerne meine berechnungen auf utc-basis durchführen und mich anschließend mit zeitzonen/sommerzeit/winterzeit herumschlagen.
nun bin ich gerade ein wenig verwirrt.
time(0) liefert mir doch die unixzeit in UTC warum sind nun aber alle ausgaben anders?
ich mein der unterschied von gmtime zu localtime ist korrekt aber ich würde gerne haben das die zeit in UTC folgende ist die ich erstellt habe(also 15:22:13)
Code:
int main() { time_t t= makeTime(2012, 10,18,15,22,13); printDate(t); // Ausgabe: Thu Oct 18 16:22:13 2012 printDate(mktime(gmtime(& t))); // Ausgabe: Thu Oct 18 14:22:13 2012 printDate(mktime(localtime(& t))); // Ausgabe: Thu Oct 18 16:22:13 2012 t = time(0); //Akutelle zeit auf meinem Rechner printDate(t); // Ausgabe: Thu Oct 18 16:37:08 2012 printDate(mktime(gmtime(& t))); // Ausgabe: Thu Oct 18 14:37:08 2012 printDate(mktime(localtime(& t))); // Ausgabe: Thu Oct 18 16:37:08 2012 } time_t makeTime(int year, int month, int day, int hour, int min, int sec){ struct tm t; t.tm_year=year-1900; t.tm_mon=month-1; t.tm_mday=day; t.tm_hour=hour; t.tm_min=min; t.tm_sec=sec; return mktime(&t); } void printDate(time_t unix_time){ std::cout << ctime(&unix_time) << std::endl; }
Comment