2010-03-12 27 views
4

我知道的Win32有NLS功能GetDateFormat,如:Win32:GetDateFormat和GetTimeFormat存在。 GetDateTimeFormat?

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

,它有GetTimeFormat,如:

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

但是,有沒有辦法一次格式化兩個,如:

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

注:格式字符串是故意構造演示e並非所有的格式字符串都是線性可分的。

+0

我喜歡那些語言和習慣與我不同的人。但即使我的軟件永遠不會被北美東部時區以外的任何人使用,但我仍然希望能夠支持這樣的事情。 –

+0

如果您不介意包括 CTime類有一個格式成員,它採用strftime樣式字符串。 –

回答

2

我記得以前有同樣的問題。不幸的是,沒有簡單的方法來格式化具有混合日期和時間字段的字符串。試圖在兩個步驟中做到這一點很容易出錯,因爲第一次替換可能會生成字母被誤認爲格式代碼的單詞。

我當時的解決方案是手動掃描格式字符串,並通過爲每個代碼調用GetDateFormat()GetTimeFormat()來生成輸出。如果需要,可以通過對連續的時間或日期代碼進行分組來優化。