Russian Qt Forum

Qt => Вопросы новичков => Тема начата: alik от Сентябрь 04, 2016, 13:39



Название: Баг QT 5.2 или ошибка при вызове QDateTime::fromString()
Отправлено: alik от Сентябрь 04, 2016, 13:39
Добрый день,

Не могу понять, что происходит при вызове функции QDateTime::fromString.
Результатом функции всегда выходит "invalid".

В другую сторону все работает нормально:

    QDateTime local(QDateTime::currentDateTime());
    QString format = "yyyy-MM-dd hh:mm:ss";
    QString S = local.toString(format);

Результат: S = "2016-09-04 13:35:29"

Обратно с теми же настройками:

    QDateTime dateTime = QDateTime::fromString(S, format);

Результат: dateTime = (invalid)

Возможно это баг QT, но как его исправить?

Использую:
- ОС Ubuntu 15.04 64 bit
- Qt Creator 3.0.0
Based on Qt 5.2.0 (GCC 4.6.1, 64 bit)
Built on Dec 10 2013 at 11:45:55
From revision 27d10d8dcd


Название: Re: Баг QT 5.2 или ошибка при вызове QDateTime::fromString()
Отправлено: qate от Сентябрь 04, 2016, 16:27
если и так, то ведь не станешь же заводить багрепорт ибо ответ на него очевиден )


Название: Re: Баг QT 5.2 или ошибка при вызове QDateTime::fromString()
Отправлено: alik от Сентябрь 04, 2016, 22:50
если и так, то ведь не станешь же заводить багрепорт ибо ответ на него очевиден )


Получается такая петрушка, следующий код абсолютно правильный и дебаг выдает нормальный результат, а значение переменной типа qdatetime высвечивается как invalid.

    QDateTime d = QDateTime::currentDateTime();
 
    const QString format = "yyyy-MM-dd hh:mm:ss";
    const QString formatted = d.toString(format);
    qDebug() << "d=" << d << ", formatted=" << formatted;
 
    QDateTime d2 = QDateTime::fromString(formatted, format);
    qDebug() << "d2=" << d2;

Debugging starts
&"warning: GDB: Failed to set controlling terminal: Inappropriate ioctl for device\n"
d= QDateTime("2016-09-04 20:19:13.029 MSK Qt::LocalTime") , formatted= "2016-09-04 20:19:13"
d2= QDateTime("2016-09-04 20:19:13.000 MSK Qt::LocalTime")

Прихожу к заключению, что это все же баг моего релиза кути.