Как получить системную длинную дату, используя mfc? - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно получить текущую длинную дату системы, используя MFC. Мое требование - мне нужно получить системную длинную дату без формата. Например: в моей системе, если дата устанавливается в формате «дд / мм / гггг», мне нужно получить в том же формате.

Предположим, в моей системе, если я изменю формат на «гггг / мм / дд»«тогда мне нужно получить вывод, который будет установлен в моей системе.

Я обнаружил, что DATE_SHORTDATE получает дату так же, как система отображает, если я использую DATE_LONGDATE, она всегда получаетсистемная дата в формате «дд / мм / гггг»

CString strValue;
SYSTEMTIME st;
CTime time = CTime::GetCurrentTime();
time.GetAsSystemTime(st);
GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st, NULL, strValue.GetBufferSetLength(50), 50);

strValue.ReleaseBuffer();

Пожалуйста, помогите мне с этим требованием.

1 Ответ

0 голосов
/ 13 октября 2019

Ваш код возвращает правильное значение, однако использование строки 'mm' не поддерживается некоторыми локалями в формате LongDate.

В моем Windows 10 1903, англо-американской локали, панель управления переопределяетЗначение от 'мм' до 'ММ'.

Control Panel,

Дополнительные сведения о LongDatePattern:

https://docs.microsoft.com/en-us/dotnet/api/system.globalization.datetimeformatinfo.longdatepattern?view=netframework-4.8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...