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