如何使用MFC获取系统长时间日期?

时间:2019-10-11 07:50:45

标签: visual-c++ mfc

我需要使用MFC获取系统当前的较长日期。我的要求是我需要获取没有格式的系统日期。例如:在我的系统中,如果日期设置为“ dd / mm / yyyy”格式,那么我需要使用相同的格式。

假设在我的系统中,如果我将格式更改为“ yyyy / mm / dd”,那么我需要获得与系统设置相同的输出。

我发现DATE_SHORTDATE正在获取系统显示的日期,如果我使用DATE_LONGDATE,它将始终以'dd / mm / yyyy'格式获取系统日期

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 :(得分:0)

您的代码返回正确的值,但是LongDate格式的某些语言环境不支持使用'mm'字符串。

在我的Windows 10 1903(英语-美国)语言环境中,控制面板将'mm'值覆盖为'MM'。

Control Panel

有关LongDatePattern的更多参考:

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