C ++ ParseDateTime () — дата-время SQL как дата Великобритании

У меня есть даты, хранящиеся в datetime в базе данных MSSQL. В моем приложении C ++ эти даты извлекаются из базы данных и сохраняются в CString.

Я пытаюсь использовать ParseDateTime () COleDateTime для отображения этих дат в хорошем формате. Однако я обнаружил, что они отображаются в американском формате (ММ / ДД / ГГГГ) и отсортированы как таковые. Я бы хотел, чтобы они отображались в британском формате (ММ / ДД / ГГГГ). Я попытался код ниже без разницы:

codt.ParseDateTime(sqlresults.GetItem(_T("date"),l),0,MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_UK));

Спасибо!

2

Решение

ParseDateTime Функция используется для чтения предоставленного значения — в вашем случае вы получаете его из базы данных и устанавливаете внутреннее представление объекта COleDateTime.

Вы не после этого метода, а скорее после COleDateTime :: Format метод.

codt.ParseDateTime(
sqlresults.GetItem(_T("date"),l),
0,
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
CString dateAsUkString = codt.Format(_T("%d/%m/%Y"));
// display the dateAsUkString string in your view
1

Другие решения

Других решений пока нет …