我知道 Win32 有 NLS 功能 GetDateFormat ,例如:
GetDateFormat(…, …, …, "dddd','MM','y", …, …);
并且它还有功能GetTimeFormat ,例如:GetTimeFormat(…, …, …, "tt ss':'hh':'mm", …, …);
但是有没有办法同时格式化日期和时间,就像假设的 GetDateTimeFormat 函数一样?GetDateTimeFormat(…, …, …, "tt dddd' - 'ss':'y';'hh':'mm MM", …, …);
注:格式字符串的构造是为了证明并非所有格式字符串都是线性可分的。因此,这不是简单地连接 GetDateFormat 和 GetTimeFormat 的结果的微不足道的问题。
最佳答案
我记得前一段时间也遇到过同样的问题。不幸的是,没有简单的方法来格式化具有混合日期和时间字段的字符串。尝试分两步执行很容易出错,因为第一次替换可能会生成字母被误认为格式代码的单词。
我当时的解决方案是手动扫描格式字符串并通过调用 GetDateFormat()
生成输出。和 GetTimeFormat()
对于每个代码。如果需要,可以通过对连续的时间或日期代码进行分组来优化。
关于datetime - Win32 是否提供了 GetDateTimeFormat 来获取统一的日期时间字符串,类似于 GetDateFormat 和 GetTimeFormat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434869/