Проблема с QDateTime (currentDateTime () и fromString ())

Я уже некоторое время пытаюсь использовать QDateTime в своей программе, но не повезло. Я не уверен, что я делаю неправильно, и это сводит меня с ума.

Фрагмент кода следующим образом:

QDateTime dteNow = QDateTime::currentDateTime();
QDateTime dteStart = QDateTime::fromString(QString::fromStdString(advertSchedule.ValidFrom),"yyyy-MM-dd hh:mm:ss"); //ValidFrom = "1990-01-01 00:00:00"QDateTime dteFinish = QDateTime::fromString(QString::fromStdString(advertSchedule.ValidTo),"yyyy-MM-dd hh:mm:ss"); //ValidTo = "2015-01-01 00:00:00"
//Breakpointed on the line below. Continuing to run causes an exception.
//Hovering over the QDateTime objects displays "dteNow (invalid) QDateTime".
if(dteNow >= dteStart
&& dteNow < dteFinish
&& dteNow.time() >= dteStart.time()
&& dteNow.time() < dteFinish.time())
{

Все три из этих дат недействительны во время выполнения.

Заранее спасибо.

0

Решение

Поскольку при вызове .time () для QDateTime вызывается исключение, один или несколько объектов QDateTime недопустимы.

Я предлагаю вам разбить эти строки:

QDateTime::fromString(QString::fromStdString(advertSchedule.ValidFrom),"yyyy-MM-dd hh:mm:ss");
QDateTime dteFinish = QDateTime::fromString(QString::fromStdString(advertSchedule.ValidTo),"yyyy-MM-dd hh:mm:ss");

Проверьте, что возвращается при вызове QString :: fromStdString (advertSchedule.ValidFrom) и QString :: fromStdString (advertSchedule.ValidTo).

Попробуйте следующее: —

QDateTime dteNow = QDateTime::currentDateTime();
if(dteNow.isValid())
{
qDebug("The date is valid: %s\n", dteNow.toString());
}
else
{
qDebug("The current date returned is invalid\n");
}

Если это выдает, что дата недействительна в окне «Вывод приложения» (или консоли, если вы оттуда запускаете), очистите проект и перестройте его.

0

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


По вопросам рекламы [email protected]