2016-07-29 9 views
0

Ich erhalte die GMT-Zeit in C++/C. Aber es gibt die falsche Stunde zurück. Zum Beispiel sollte die Stunde jetzt 9 Uhr sein, aber das Objekt struct tm gibt 3 Uhr morgens zurück. Irgendeine Idee warum oder was ich falsch mache?gmtime gibt falsche Stunde zurück

time_t rawtime; 
struct tm* ptm; 
time(&rawtime); 
ptm = gmtime(&rawtime); 

std::stringstream ss; 
ss << ptm->tm_hour; // outputs "3" when it should be "9" 

gmtime sollte immer geben die UTC/GMT Zeit unabhängig davon, wo sich der Benutzer oder welche Zeitzone Einstellung haben sie richtig?

+0

Kann nicht replizieren: https://ideone.com/K9116G – 2501

+0

Ich versuchte und ich denke, es scheint gut, [ideone] (https://ideone.com/uJPX0k) – GAVD

+0

Einige Benutzer pflegten ihre Computer in UTC und Stellen Sie stattdessen die Zeit auf Ortszeit ein. Können Sie überprüfen, ob Sie auf dem gmt sind, von dem Sie glauben, dass Sie es sind? – Fabio

Antwort

1

gmtime sollte immer die UTC/GMT-Zeit zurückgeben, unabhängig davon, wo sich der Benutzer befindet oder welche Zeitzoneneinstellung er hat?

Ja, solange ihre Computeruhr richtig eingestellt ist.

Offensichtlich ist deins nicht.