2009-05-04 7 views
4
// Simple program to get the date and time on Windows 
// It compiles and works fine but displays the wrong hour! 


// Using Visual C++ 2008 Express on XP SP2 
#include <Windows.h> 
#include <iostream> 
using namespace std; 


void main() 
{ 
    SYSTEMTIME st; 
    GetSystemTime(&st); 

    cout << "Year : " << st.wYear << "\n"; 
    cout << "Month : " << st.wMonth << "\n"; 
    cout << "Day : " << st.wDay << "\n"; 

    // The following line displays the wrong hour, off by 4 hours. 
     // What gives? 
    cout << "Hour : " << st.wHour << "\n"; 
    cout << "Minute : " << st.wMinute << "\n"; 
    cout << "Second : " << st.wSecond << "\n"; 
} 

// TIA guys! 
// -- Bert 

Répondre

1

Avez-vous vérifié pour voir si le temps que vous avez est dans le bon fuseau horaire?

Windows a également une fonction getlocaltime qui devrait renvoyer l'heure correcte dans votre fuseau horaire.

16

L'heure est en UTC selon les docs. Lien HERE

Pour l'heure locale que vous souhaitez GetLocalTime()

3

GetSystemTime() retourne l'heure actuelle en UTC (voir le documentation). Si vous êtes en EST (qui est UTC-4 lorsque DST est en affect), alors il retournera l'heure actuelle + 4 heures.

Questions connexes