Fix datetime serialization appending two 'Z' at the end with Qt >= 4.8.

This commit is contained in:
Felix Geyer 2012-06-24 11:25:06 +02:00
parent 513ba6d19d
commit 38d2b124d8

View File

@ -440,8 +440,16 @@ void KeePass2XmlWriter::writeBool(const QString& qualifiedName, bool b)
void KeePass2XmlWriter::writeDateTime(const QString& qualifiedName, const QDateTime& dateTime)
{
Q_ASSERT(dateTime.isValid());
Q_ASSERT(dateTime.timeSpec() == Qt::UTC);
writeString(qualifiedName, dateTime.toUTC().toString(Qt::ISODate).append('Z'));
QString dateTimeStr = dateTime.toString(Qt::ISODate);
// Qt < 4.8 doesn't append a 'Z' at the end
if (!dateTimeStr.isEmpty() && dateTimeStr[dateTimeStr.size() - 1] != 'Z') {
dateTimeStr.append('Z');
}
writeString(qualifiedName, dateTimeStr);
}
void KeePass2XmlWriter::writeUuid(const QString& qualifiedName, const Uuid& uuid)