场景
我要得出今天是星期几,使用的是GetSystemTime函数,结果在星期一7:55的时候,得出的星期是周日。很是费解
代码
SYSTEMTIME t;
::GetLocalTime(&t);
std::cout<<t.wDayOfWeek<<std::endl;
SYSTEMTIME t2;
::GetSystemTime(&t2);
std::cout<<t2.wDayOfWeek<<std::endl;
FILE *fd;
fd = fopen("log.txt","a+");
if (fd)
{
fprintf(fd,"GetLocalTime 日期:%d月%d日 %d:%d:%d,星期%d\n",t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond,t.wDayOfWeek);
fprintf(fd,"GetSystemTime 日期:%d月%d日 %d:%d:%d,星期%d\n",t2.wMonth,t2.wDay,t2.wHour,t.wMinute,t.wSecond,t2.wDayOfWeek);
fprintf(fd,"------------------------------------------------------------\n");
}
fclose(fd);
结果
GetLocalTime 日期:7月14日 16:29:40,星期2
GetSystemTime 日期:7月14日 8:29:40,星期2
------------------------------------------------------------
分析
这两个函数时间相差8个小时的时差,GetSystemTime 函数获取格林威治标准时间