Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

QDateTime::fromString returns invalid Date, what am I missing?

Tags:

c++

qt

qdatetime

I have some code that reads a datetime from a sqlite database, the datetime is returned as a string. when I try to convert it to a date using QDateTime::FromString it returns an invalid date. Below is the time as returned from the database and conversion. Why is this failing to parse?

// -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);
like image 501
user1127081 Avatar asked Dec 27 '22 07:12

user1127081


1 Answers

No expert in QT, but if QDateTime::fromString() works as one would (reasonably) expect and according to this, you're not using the correct pattern.

You indicate the string read from the sqllite database is like "2012-01-17 19:20:27.0", then your format should be like yyyy-MM-dd HH:mm:ss.z.

In detail:

  • Your separator should by '-' not '/' (as you show in the example)
  • The time seems to be in 24 hours format (19 -> 7 p.m.) (so use HH instead of hh)
  • You have one digit for milliseconds, so add .z.
like image 165
Christian.K Avatar answered Feb 24 '23 20:02

Christian.K