Ненадежный анализ DateTime с помощью COleDateTime
Я пытаюсь разобрать дату, используя
ParseDateTime
метод, предоставляемый классом. Но синтаксический анализ двух разных дат в одной программе возвращает несогласованные значения месяца.
Фрагмент кода:
COleDateTime dtCreated;
dtCreated.ParseDateTime(safe_cast<CString>(strCreatedDate));
Несогласованные РЕЗУЛЬТАТЫ:
if = "07.10.2020" (в формате мм.дд.гггг ), то = 7 ( но должно быть 10 )
if = "29.07.2020" (в формате мм.дд.гггг ), то
dtCreated.GetMonth()
= 7 (в данном случае правильно )
ОБНОВИТЬ:
Значение даты присутствует в
strCreatedDate
vairable может иметь формат «дд.мм.гггг» ИЛИ «мм.дд.гггг». Но у меня есть информация о формате данных, доступная в отдельной переменной. Исходя из формата, я хочу
COleDateTime
чтобы правильно проанализировать строку DateTime. Как я могу это сделать?
1 ответ
С
String^
ваш вклад, который вы могли бы использовать
DateTime::ParseExact
, а затем преобразовать
DateTime
к
COleDateTime
с использованием
DateTime.ToOADate
:
COleDateTime dtCreated(DateTime::ParseExact(
strCreatedDate, isDMY ? "d.M.yyyy" : "M.d.yyyy", nullptr).ToOADate());