Ненадежный анализ DateTime с помощью COleDateTime

Я пытаюсь разобрать дату, используя ParseDateTimeметод, предоставляемый классом. Но синтаксический анализ двух разных дат в одной программе возвращает несогласованные значения месяца.

Фрагмент кода:

      COleDateTime dtCreated;
dtCreated.ParseDateTime(safe_cast<CString>(strCreatedDate));

Несогласованные РЕЗУЛЬТАТЫ:

if = "07.10.2020" (в формате мм.дд.гггг ), то = 7 ( но должно быть 10 )

if = "29.07.2020" (в формате мм.дд.гггг ), то dtCreated.GetMonth()= 7 (в данном случае правильно )

ОБНОВИТЬ:

Значение даты присутствует в strCreatedDatevairable может иметь формат «дд.мм.гггг» ИЛИ «мм.дд.гггг». Но у меня есть информация о формате данных, доступная в отдельной переменной. Исходя из формата, я хочу COleDateTimeчтобы правильно проанализировать строку DateTime. Как я могу это сделать?

1 ответ

Решение

С String^ ваш вклад, который вы могли бы использовать DateTime::ParseExact, а затем преобразовать DateTime к COleDateTime с использованием DateTime.ToOADate:

      COleDateTime dtCreated(DateTime::ParseExact(
    strCreatedDate, isDMY ? "d.M.yyyy" : "M.d.yyyy", nullptr).ToOADate());
Другие вопросы по тегам