I have encountered a strange parsing issue.
It looks like when there are fractions of a second present there have to be at least 4 digits after '.' or else time will be parsed as 00:00:00.
Also issue does NOT show when we remove timezone part
I don't know much about ISO 8601 standard much but as i was able to check on wiki all strings are correct with the standard. So is it a bug or ... ?

This code (Qt 4.6.3, tried on desktop and Simulator):
Qt Code:
  1. QString datetime1("2010-08-06T18:34:14.3+02:00");
  2. QString datetime2("2010-08-06T18:34:14.386+02:00");
  3. QString datetime3("2010-08-06T18:34:14.386625+02:00");
  4. qDebug() << datetime1;
  5. qDebug() << datetime2;
  6. qDebug() << datetime3;
  7. QDateTime datetime11 = QDateTime::fromString(datetime1, Qt::ISODate);
  8. QDateTime datetime22 = QDateTime::fromString(datetime2, Qt::ISODate);
  9. QDateTime datetime33 = QDateTime::fromString(datetime3, Qt::ISODate);
  10. qDebug() << datetime11.toString(Qt::ISODate);
  11. qDebug() << datetime22.toString(Qt::ISODate);
  12. qDebug() << datetime33.toString(Qt::ISODate);
To copy to clipboard, switch view to plain text mode 
generates this output:
Qt Code:
  1. "2010-08-06T18:34:14.3+02:00"
  2. "2010-08-06T18:34:14.386+02:00"
  3. "2010-08-06T18:34:14.386625+02:00"
  4. "2010-08-06T00:00:00"
  5. "2010-08-06T00:00:00"
  6. "2010-08-06T18:34:14"
To copy to clipboard, switch view to plain text mode