COleDateTime::GetCurrentTime();
ist in UTC, so dass Sie es zu einem Lokalzeit konvertieren müssen, finden Sie this:
COleDateTime dt; // yor UTC time
..........
TIME_ZONE_INFORMATION timeZoneInformation;
DWORD dwTZ = GetTimeZoneInformation(&timeZoneInformation);
if(dwTZ == TIME_ZONE_ID_STANDARD || dwTZ == TIME_ZONE_ID_DAYLIGHT)
{
SYSTEMTIME timeUTC
dt.GetAsSystemTime(&timeUTC);
SYSTEMTIME timeLocal;
SystemTimeToTzSpecificLocalTime(&timeZoneInformation, &timeUTC, &timeLocal);
dt = COleDateTime(&timeLocal);
}
else
{
//error handling
}
Sie sich auch diese die program folgende Verwendung überprüfen:
UTC
#include <windows.h>
#include <stdio.h>
void main()
{
SYSTEMTIME st, lt;
GetSystemTime(&st);
GetLocalTime(<);
printf("The system time is: %02d:%02d\n", st.wHour, st.wMinute);
printf(" The local time is: %02d:%02d\n", lt.wHour, lt.wMinute);
}
Zone Meine Zeit ist -5. und ich sehe nicht die große Zeitdifferenz zwischen Systemzeit und -zeit, die von GetCurrentTime() zurückgegeben wurde. – Geek
@Geek Bitte überprüfen Sie Ihre Ortszeit und sytime mit 'GetSystemTime' und' GetLocalTime' wie in meinem zweiten Beispiel – Rama