Я хочу отформатировать COleDateTime как CString, поэтому я использую
COleDateTime dt = GetMyDateTimeObj();
dt.Format(LOCALE_NOUSEROVERRIDE, GetCurrentLocaleID());
Так как моя программа мультиязычна, GetCurrentLocaleID дает мне выбранный в настоящее время LCID (не в окнах, а в моей программе).
Таким образом, приведенное выше дает мне правильно отформатированную строку в соответствии с выбранным языком пользователя, но всегда в формате «дата с годом + время с секундами». Я думаю, что это короткий формат даты и длинный формат времени в соответствии с региональными настройками Windows.
Что я могу сделать, чтобы получить строку с
— год как всего 2 числа?
— полностью без года?
— часть времени без секунд?
Есть ли переключатели на COleDateTime::Format
это может дать мне год-как-2-цифры, время без секунд, но сохраняет полевой порядок и разделители, указанные в LCID
?
Конечно, я не хочу изменять какие-либо региональные настройки Windows, чтобы сделать это, и я не хочу использовать какие-либо фиксированные строки формата, такие как _T("%d.%m.%Y %H:%M:%S")
поскольку это нарушит специфический для языка порядок полей и разделителей.
Спасибо за ваши советы и ответы
Миха
Задача ещё не решена.
Других решений пока нет …