0

我们可以在 D/M/YYYY 或 DD/MM/YYYY 中配置本地系统格式。在我的项目中,我们必须获取本地日期格式并按原样显示在列表框中。我将我的机器配置为 DD/MM/YYYY,我们正在使用 CTime 函数从系统获取当前时间,但 CTime 仅返回一天中的一位数(例如:2/2/2022 而不是 02/02/2022)来自每个月的第 1 天到第 9 天。是否有任何替代功能可以获取与系统日期格式相同的日期格式或任何替代功能来获取正确的日期格式(我们使用带有 c++ 平台的 Visual Studio)。下面是示例代码,其中每个月的第 1 天到第 9 天的日期为个位数

 now= ctime(&timer);
 sscanf(now, "%s %s %s %s %s\n", w, month, day, time, year);

对于日期 02/02/2022,如果本地系统格式为 DD/MM/YYY,则 scanf 语句中的天应为 02,如果本地系统格式为 D/M/YYY,则 scanf 语句中的天应为 2。请建议

提前致谢

4

2 回答 2

0

在这里https://docs.microsoft.com/en-us/windows/win32/api/datetimeapi/nf-datetimeapi-getdateformata您有 getdateformat 函数的规范,使用该函数可以获得本地系统的格式。然后,您可以使用 %s 或 %.2s 正确格式化输出,以强制对 0-9 值进行一个零填充。

于 2022-02-17T13:05:22.787 回答
-3

strftime%D格式字符串一起使用。

于 2022-02-17T12:55:43.367 回答