我知道Win32具有Nls函数GetDateFormat,例如:
GetDateFormat(…, …, …, "dddd','MM','y", …, …);
并且具有GetTimeFormat,例如:
GetTimeFormat(…, …, …, "tt ss':'hh':'mm", …, …);
但是有没有一种方法可以同时格式化两者,例如:
GetDateTimeFormat(…, …, …, "tt dddd' - 'ss':'y';'hh':'mm MM", …, …);
注意:格式字符串是有意构造的,以证明并非所有格式字符串都是线性可分离的。
最佳答案
我记得以前有同样的问题。不幸的是,没有简单的方法来格式化带有混合日期和时间字段的字符串。尝试分两个步骤进行操作很容易出错,因为第一次替换可能会生成单词,其字母被误认为格式代码。
当时我的解决方案是手动扫描格式字符串,并通过为每个代码调用GetDateFormat()
和GetTimeFormat()
来生成输出。如果需要,可以通过将连续的时间或日期代码分组来优化此功能。