Visual c++ 设置长日期格式以及将GetLocaleInfo与LOCALE\u SLONGDATE一起使用时出现问题
我在这里感到困惑。根据我的Windows 10区域设置,长日期格式为: 我正在调整一些MFC代码:Visual c++ 设置长日期格式以及将GetLocaleInfo与LOCALE\u SLONGDATE一起使用时出现问题,visual-c++,mfc,Visual C++,Mfc,我在这里感到困惑。根据我的Windows 10区域设置,长日期格式为: 我正在调整一些MFC代码: strDate = CFormatUtility::FormatAsLongDate(datToFormat); 所以上面调用这个方法: CString CFormatUtility::FormatAsLongDate(COleDateTime datDate) { CString strFormattedText; TRY { TCHAR szDat
strDate = CFormatUtility::FormatAsLongDate(datToFormat);
所以上面调用这个方法:
CString CFormatUtility::FormatAsLongDate(COleDateTime datDate)
{
CString strFormattedText;
TRY
{
TCHAR szDateFormatString[_MAX_PATH];
GetLocaleInfoEx(theApp.GetHtmlLanguageCode(),
LOCALE_SLONGDATE, szDateFormatString, _MAX_PATH);
strFormattedText = FormatAsCustomDate(datDate, szDateFormatString);
}
CATCH(CException, Except)
{
}
END_CATCH
return strFormattedText;
}
我不向您展示后续方法,因为问题在于:
TCHAR szDateFormatString[_MAX_PATH];
GetLocaleInfoEx(theApp.GetHtmlLanguageCode(),
LOCALE_SLONGDATE, szDateFormatString, _MAX_PATH);
根据高级Windows设置:
然而,当我使用上述代码时:
如您所见,格式字符串为ddddd,MMMM d,yyyy
,这是不正确的
根据它的文件说:
区域设置的长日期格式字符串。此字符串允许的最大字符数为80,包括终止的空字符。该字符串可以由日、月、年和纪元格式的图片以及包含在单引号中的任何字符串组成。单引号中的字符保持指定状态。例如,西班牙语(西班牙)的长日期是“dddd,dd'de'MMMM'de'yyyy”。区域设置可以定义多个长日期格式
我应该澄清第一个参数的值是en
更新
在我的区域设置中,我发现有几种类型的长约会:
但是这个练习的全部目的是获取区域设置使用的格式字符串。它没有返回字符串dd MMMM yyyy
问题是(在我的情况下,我的操作系统是英国英语。因此我必须使用en gb
的语言代码,然后它显示我的日期格式字符串