我知道Win32具有Nls函数GetDateFormat,例如:

GetDateFormat(…, …, …, "dddd','MM','y", …, …);


并且具有GetTimeFormat,例如:

GetTimeFormat(…, …, …, "tt ss':'hh':'mm", …, …);


但是有没有一种方法可以同时格式化两者,例如:

GetDateTimeFormat(…, …, …, "tt dddd' - 'ss':'y';'hh':'mm MM", …, …);


注意:格式字符串是有意构造的,以证明并非所有格式字符串都是线性可分离的。

最佳答案

我记得以前有同样的问题。不幸的是,没有简单的方法来格式化带有混合日期和时间字段的字符串。尝试分两个步骤进行操作很容易出错,因为第一次替换可能会生成单词,其字母被误认为格式代码。

当时我的解决方案是手动扫描格式字符串,并通过为每个代码调用GetDateFormat()GetTimeFormat()来生成输出。如果需要,可以通过将连续的时间或日期代码分组来优化此功能。

10-06 13:49