一、调用系统时间/日期对话框
方法一:AfxOleInit(); 初始化com库。
IShellDispatch* pdisp;
HRESULT hr = CoCreateInstance(CLSID_Shell, NULL, CLSCTX_SERVER, IID_IDispatch, (void**)&pdisp);
//if(SUCCEEDED(hr))
{
//断在这儿进不来呀 ?
pdisp->SetTime();
pdisp->Release();
}
方法二:
ShellExecute(this->m_hWnd,"open","rundll32.exe","shell32.dll,Control_RunDLL timedate.cpl,,0","", SW_SHOW );
二、设置时间
1、setsystemtime设置的时间是GMT时间(国际协同时间),它与北京的时间相差8小时
SYSTEMTIME systemTime;
if(systemTime.wHour>=8)
systemTime.wHour-=8;
else systemTime.wHour+=16;
SetSystemTime(&systemTime);
2、或者用SetLocalTime(&systemTime);
三、设置时间格式:
GetLocaleInfo
可以获得日期和时间的格式
SetLocaleInfo
可以设置日期和时间的格式
// 将时间设置成12小时的格式,就是带am/pm(上午/下午)
SetLocaleInfo (LOCALE_SYSTEM_DEFAULT, LOCALE_ITIME, _T ("0), 2);
// 将时间设置成24小时的格式
SetLocaleInfo (LOCALE_SYSTEM_DEFAULT, LOCALE_ITIME, _T ("1), 2);
// AM/PM出现在时间的后面
SetLocaleInfo (LOCALE_SYSTEM_DEFAULT, LOCALE_ITIMEMARKPOSN,_T ("0), 2);
// AM/PM出现在时间的前面
SetLocaleInfo (LOCALE_SYSTEM_DEFAULT, LOCALE_ITIMEMARKPOSN,_T ("1), 2);
可以设置的还有
LOCALE_IDATE 设置短日期格式
0 对应的格式为月-日-年
1 对应的格式为日-月-年
2 对应的格式为年-月-日
LOCALE_ILDATE 设置长日期格式
0 对应的格式为月-日-年
1 对应的格式为日-月-年
2 对应的格式为年-月-日
LOCALE_SDATE 设置日期的分隔符,如 / - 之类的
LOCALE_STIME 设置时间的分隔符,如 :
LOCALE_STIMEFORMAT 设置时间的显示格式 如 HH:mm:ss
LOCALE_SLONGDATE 设置长时间的显示格式,如 yyyy/MM/dd
具体的去msdn中查吧,很详细的