Visual c++ 设置长日期格式以及将GetLocaleInfo与LOCALE\u SLONGDATE一起使用时出现问题

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

我在这里感到困惑。根据我的Windows 10区域设置,长日期格式为:

我正在调整一些MFC代码:

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
的语言代码,然后它显示我的日期格式字符串