在一些系统设计中,时间日期,钱币符号等很多东西在每个国家的表示都是不同。如何让程序自动适应这些变化?
GetLocaleInfo为此提供了解决办法。
GetLocaleInfo可以获取各种数据的设置参数。配合GetDateFormat,GetTimeFormat可以获的日期、时间的本地格式化结果。
GetNumberFormat可以获取数字显示的本地格式化输出结果
以下为MiniWin部分应用中的时间显示参考代码,在中文环境下,时间会按照中文 2008/5/25 19:33:23 下午,
英文环境则为 5/25/2008 19:33:23 PM.而且随着系统时间日期格式设置的改变,你的程序也会自动调整
static
LRESULT WINAPI EpgWndProc(HWND hwnd,UINT msgID,WPARAM wParam,LPARAM lParam)
... {
switch(msgID)
...{
case WM_TIMER:
...{
char sdate[128],stime[64];
SYSTEMTIME tnow;
GetLocalTime(&tnow);
GetDateFormat(LOCALE_NEUTRAL,0,&tnow,0,sdate,64);
GetTimeFormat(LOCALE_NEUTRAL,/**//*TIME_NOSECONDS|*/TIME_FORCE24HOURFORMAT,&tnow," hh:mm:ss tt",stime,64);
strcat(sdate,stime);
SetDlgItemText(hwnd,IDC_DATETIME,sdate);
}
break;
... {
switch(msgID)
...{
case WM_TIMER:
...{
char sdate[128],stime[64];
SYSTEMTIME tnow;
GetLocalTime(&tnow);
GetDateFormat(LOCALE_NEUTRAL,0,&tnow,0,sdate,64);
GetTimeFormat(LOCALE_NEUTRAL,/**//*TIME_NOSECONDS|*/TIME_FORCE24HOURFORMAT,&tnow," hh:mm:ss tt",stime,64);
strcat(sdate,stime);
SetDlgItemText(hwnd,IDC_DATETIME,sdate);
}
break;
}
}