Win32:存在GetDateFormat和GetTimeFormat。 GetDateTimeFormat?

时间:2010-03-12 18:23:11

标签: datetime winapi localization internationalization

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

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

它有GetTimeFormat,例如:

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

但有没有办法同时格式化两者,例如:

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

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

1 个答案:

答案 0 :(得分:2)

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

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