在MFC中使用GetLocalTime获取系统时间
SYSTEMTIME st;
CString strDate,strTime;
GetLocalTime(&st);
strDate.Format("%4d-%2d-%2d",st.wYear,st.wMonth,st.wDay);
strTime.Format("%2d:%2d:%2d",st.wHour,st.wMinute,st.wSecond);
会报错
error C2664: “void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能将参数 1 从“const char [12]”转换为“const wchar_t *”
解决办法
使用下面两行代码解决
strDate.Format(_T("%4d-%2d-%2d"), st.wYear, st.wMonth, st.wDay);
strTime.Format(_T("%4d:%2d:%2d"), st.wHour, st.wMinute, st.wSecond);
_T("")是一个宏,他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNICODE,
前者就是通常使用的单字节方式,
但这种方式处理象中文这样的双字节字符不方便,
容易出现半个汉字的情况。
而后者是双字节方式,方便处理双字节字符。
参考链接:使用str.Format出错