GetSystemTime时间跟实际时间差了8小时
GetSystemTime得到的是标准时间,GetLocalTime才是返回本地时间
北京时间为东8时区,所以本地时间和标准时间相差8小时。
这里实现给获取到的系统时间加8小时
SYSTEMTIME CMyCode::SytemTimeAdd8Hour(SYSTEMTIME& st)
{
if (st.wHour+8<24)
{
st.wHour=st.wHour+8;
}
else
{
st.wHour=st.wHour+8-24;
switch(st.wMonth)
{
case 2:
//判断是否为闰年
if (IsLeapYear(st.wYear))
{
if (st.wDay+1<30)
{
st.wDay=st.wDay+1;
}
else
{
st.wDay=1;
st.wMonth=st.wMonth+1;
}
}
else
{
if (st.wDay+1<29)
{
st.wDay=st.wDay+1;
}
else
{
st.wDay=1;
st.wMonth=st.wMonth+1;
}
}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
if (st.wDay+1<32)
{
st.wDay=st.wDay+1;
}
else
{
st.wDay=1;
st.wMonth=st.wMonth+1;
}
break;
case 12:
if (st.wDay+1<32)
{
st.wDay=st.wDay+1;
}
else
{
st.wDay=1;
st.wMonth=1;
st.wYear=st.wYear+1;
}
break;
case 4:
case 6:
case 9:
case 11:
if (st.wDay+1<31)
{
st.wDay=st.wDay+1;
}
else
{
st.wDay=1;
st.wMonth=st.wMonth+1;
}
break;
}
}
return st;
}