哪个来帮小弟我看看这小段代码有什么有关问题,跪谢啦,只有这点分了,不好意思

哪个高手进来帮我看看这小段代码有什么问题,跪谢啦,只有这点分了,不好意思!
TCHAR szItem[MAX_PATH] = {(0)};
TCHAR szTiemEnd[MAX_PATH] = {(0)};
wsprintf(szItem,_T("%04u-%02u-%02u %02u:%02u:%02u"),
pRec->m_tmBegin.wYear,pRec->m_tmBegin.wMonth,pRec->m_tmBegin.wDay,
pRec->m_tmBegin.wHour,pRec->m_tmBegin.wMinute,pRec->m_tmBegin.wSecond);
wsprintf(szTiemEnd,_T("%04u-%02u-%02u %02u:%02u:%02u"),
pRec->m_tmEnd.wYear,pRec->m_tmEnd.wMonth,pRec->m_tmEnd.wDay,
pRec->m_tmEnd.wHour,pRec->m_tmEnd.wMinute,pRec->m_tmEnd.wSecond);
DemoInfo("Messile:%s, begTime:%s, endTime:%s, Desc:%s, Type:%s",pRec->m_szCamera, szItem, szTiemEnd, pRec->m_szRecDesc, pRec->m_szRecType);


我想把时间格式化后通过DemoInfo定向到log里去,但是怎么begTime和endTime运行结果都不是2012-04-18 16:13:25的形式,而是两个整数2啊?log里面的结果为:
Messile:白杨-III, begTime:2, endTime:2, Desc:, Type:1
怎么回事啊?

------解决方案--------------------
可能是UNICODE的问题,DemoInfo是什么?
------解决方案--------------------
你可以先断点看一下变量的内容,如果内容没错,可能是DemoInfo宏的问题

------解决方案--------------------
宏这种东西,如果没有必要,不用最好

------解决方案--------------------
wsprintf 换成 _stprintf_s 试试看
------解决方案--------------------
用%d呢
------解决方案--------------------
感觉楼上说得有点道理DemoInfo宏里面格式化类型应该要和 pRec->m_szCamera, szItem等...相同吧
------解决方案--------------------
我一般这样做:
CString str;
str.Format(L"%d-%02d-%02d",year,month,day);
这是Unicode。CString类很好。
如果需要转换成ascii,可以写一个CStr类,通过WideCharToMultiByte函数完成。
------解决方案--------------------
探讨
我一般这样做:
CString str;
str.Format(L"%d-%02d-%02d",year,month,day);
这是Unicode。CString类很好。
如果需要转换成ascii,可以写一个CStr类,通过WideCharToMultiByte函数完成。