Michael Haephrati Ответов: 1

Как преобразовать текстовую дату и время в ctime


Я ищу способ преобразовать текстовую дату и время в CTime.
Текстовая дата и время могут быть:
Цитата:
"27 декабря 1999 года"
"8:30:00"
"20:30:00"
"25 января 1996 года 8:30:00"
"8:30:00 25 января 1996 года"
"1/25/1996 8:30:00"


Что я уже пробовал:

Однако я написал следующую функцию ParseDateTime всегда терпит неудачу.

CTime DateTimeString2CTime(CString DateTimeStr)
{
	COleDateTime t;
	if (t.ParseDateTime(DateTimeStr))
	{
		CTime result(t);
		return result;
	}
	return (CTime)NULL;
}

Richard MacCutchan

Какова фактическая строка, которую вы передаете, и проверили ли вы GetLastError (), чтобы увидеть, дает ли это какие-либо дополнительные подсказки?

Richard MacCutchan

Кроме того, я не вижу конструктора в Класс CTime | Microsoft Docs[^] это принимает значение COleDateTime.

1 Ответов

Рейтинг:
1

KarstenK

Зов Божий ParseDateTime должно работать для допустимой строки даты. Причиной проблем может быть то, что настройки локали на вашем компьютере не соответствуют этому формату даты. Проверьте это - возможно, исправьте это с помощью дополнительного параметра ParseDateTime.

Или это еще одна проблема из входного параметра или конструктора преобразования CTime?