QDateTime :: fromString возвращает неверную дату, что мне не хватает? - PullRequest
3 голосов
/ 19 января 2012

У меня есть код, который читает datetime из базы данных sqlite, datetime возвращается в виде строки.когда я пытаюсь преобразовать его в дату, используя QDateTime :: FromString, он возвращает недопустимую дату.Ниже приведено время возврата из базы данных и конвертации.Почему это не удается разобрать?

// -this is the value returned from the DB currentServerTime=2012-01-17 19:20:27.0

QString format("yyyy/MM/dd hh:mm:ss");
QString qCurrentServerTime(currentServerTime);
now = QDateTime::fromString(qCurrentServerTime, format);

1 Ответ

10 голосов
/ 19 января 2012

Нет эксперта в QT, но если QDateTime::fromString() работает так, как можно (разумно) ожидать, и согласно this , вы не используете правильный шаблон.

Вы указываетеСтрока, считанная из базы данных sqllite, выглядит как «2012-01-17 19: 20: 27.0», тогда ваш формат должен быть таким: yyyy-MM-dd HH:mm:ss.z.

Подробно:

  • Вашразделитель должен обозначаться как '-' not '/' (как показано в примере)
  • Время в формате 24 часа (19 -> 7 вечера) (поэтому используйте HH вместо hh)
  • У вас есть одна цифра для миллисекунд, поэтому добавьте .z.
...