Well, malformed would be pushing it a bit. If you are in need of a platform independent way of handling the timezone you'd give it as ISO 8601 date time - with the timezone offset; for any other purpose the text representation will be dependent on OS's locale settings. :)
If the timeSpec() is Qt::LocalTime or Qt::TimeZone then the date and time are checked to see if they fall in the Standard Time to Daylight Time transition hour, i.e. if the transition is at 2am and the clock goes forward to 3am then the time from 02:00:00 to 02:59:59.999 is considered to be invalid.
QDateTime specified for March 25th, 2007 from 02:00:00 to 02:59:59.999 falls into a " Standard Time to Daylight Time transition hour", i.e. QDateTime::isValid fails, which in turn means that that time does not exist for timeSpec() Qt::LocalTime or Qt::TimeZone.
Sorry for using this forum as a rubber duck...