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

11.1k views Asked by At

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);
1

There are 1 answers

4
Christian.K On BEST ANSWER

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.