2009-05-04 27 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 

Antwort

1

Haben Sie überprüft, ob Ihre Zeit in der richtigen Zeitzone liegt?

Windows hat auch eine getlocaltime Funktion, die die richtige Zeit in Ihrer Zeitzone zurückgeben sollte.

16

Die Zeit ist in UTC gemäß den Dokumenten. Link HERE

Für die lokale Zeit möchten Sie GetLocalTime()

3

GetSystemTime() die aktuelle Uhrzeit in UTC zurück (siehe documentation). Wenn Sie sich in EST befinden (was UTC-4 ist, wenn DST aktiv ist), dann würde es die aktuelle Zeit + 4 Stunden zurückgeben.