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();
请帮助我解决这个要求。
解决方案
您的代码返回正确的值,但是 LongDate 格式的某些语言环境不支持使用 'mm' 字符串。
在我的 Windows 10 1903(英语-美国语言环境)上,控制面板将“mm”值覆盖为“MM”。
有关 LongDatePattern 的更多参考:
推荐阅读
- python - 在 matplotlib 图的中间水平居中 y 标签
- javascript - 如何跨突变将新附加值添加到状态?
- python-3.x - 从python中的列表中删除子列表
- python - 用于在 Selenium 中读取与切换开关相关的文本标签的 Python 代码
- javascript - 我可以在 JavaScript 中使用 System.Drawing.Color 吗?
- java - 在 Spring 应用程序中使用 JPA 连接多个表时从数据库获取最近更新的结果
- apache-kafka - Kafka 处理器 API,每条处理的记录只有一次语义
- android - 构建一个签名的 Apk
- ios - 使用 pushViewController 时出现“致命错误:在展开可选值时意外发现 nil”
- php - PHP urlencode 返回意外结果