ColeDateTime:: Формат разных языков

Я хочу отформатировать 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") поскольку это нарушит специфический для языка порядок полей и разделителей.

Спасибо за ваши советы и ответы

Миха

0 ответов

Другие вопросы по тегам