我想将COleDateTime格式化为CString,所以我使用

COleDateTime dt = GetMyDateTimeObj();
dt.Format(LOCALE_NOUSEROVERRIDE, GetCurrentLocaleID());

由于我的程序是多语言,GetCurrentLocaleID给了我当前选择的LCID(不是在Windows中,而是在我的程序中) . 所以上面给出了根据所选用户语言正确格式化的字符串,但它始终采用“与年同步的时间 - 秒”的格式 . 我认为这是一个日期的短格式和时间的长格式符合Windows区域设置 .

我能做些什么才能获得字符串 - 年份仅为2个数字? - 完全没有一年? - 没有秒的时间部分?

是否有任何切换到 COleDateTime::Format ,可以给我一年两位数,时间无秒,但保持 LCID 指定的fieldorder和分隔符?

当然我不想更改任何windows-regional-settings来执行此操作,我不想使用任何固定格式的字符串,如 _T("%d.%m.%Y %H:%M:%S") ,因为这会破坏语言特定的字段和分隔符顺序 .

感谢您的提示和答案

米莎