COleDateTime как независимая от настроек строка

Я должен хранить COleDateTime в CString и разобрать его обратно COleDateTime потом. Всякий раз, когда я использую COleDateTime::Format() без каких-либо параметров или с любым LCID-Параметр Я получаю строку, которая зависит от текущих Windows-региональных настроек.

Проблема в том, что я не знаю, изменяет ли пользователь эти параметры между хранением и повторным анализом, и если этот случайный повторный анализ завершится неудачно.

Поэтому, чтобы избежать этого, я не использую и LCID но явная строка форматирования при сохранении моего COleDateTime:

COleDateTime mytime = getit();
CString sStoreVal = mytime.Format(_T("%Y-%m-%d %H:%M:%S"));
COleDateTime myTimeParsedBack;
myTimeParsedBack.ParseDateTime(sStoreVal);
ASSERT(myTimeParsedBack == mytime);  //This is what i need: both objects have to be equal

Это похоже на работу, но так как COleDateTime У меня нет никакого параметра-формата. Я не уверен, что он действительно работает или мне просто случайно повезло. Как ParseDateTime знать, "2017-02-01" 2 января или 1 февраля? Что мне нужно, чтобы получить то же самое COleDateTime назад, даже когда пользователь изменяет Региональные настройки или настройки формата между сохранением и повторным анализом.

Спасибо за вашу помощь

0 ответов

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