[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepimlibs/kxmlrpcclient
From: Mike Arthur <mike () mikearthur ! co ! uk>
Date: 2007-07-06 17:46:02
Message-ID: 1183743962.981218.31627.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 684481 by mikearthur:
Add check for common invalid use of ISO 8601 for dates.
M +16 -1 query.cpp
--- trunk/KDE/kdepimlibs/kxmlrpcclient/query.cpp #684480:684481
@@ -289,8 +289,23 @@
}
} else if ( typeName == "base64" ) {
return QVariant( QByteArray::fromBase64( typeElement.text().toLatin1() ) );
- } else if ( typeName == "datetime" || typeName == "datetime.iso8601" ) {
+ } else if ( typeName == "datetime" ) {
return QVariant( QDateTime::fromString( typeElement.text(), Qt::ISODate ) );
+ } else if ( typeName == "datetime.iso8601" ) {
+ QDateTime date;
+ QString dateText = typeElement.text();
+ // Test for broken use of Basic ISO8601 date and extended ISO8601 time
+ if (dateText.length() == 18 && dateText.at(4) != '-'
+ && dateText.at(11) == ':') {
+ if (dateText.endsWith('Z')) {
+ date = QDateTime::fromString( dateText, "yyyyMMddTHH:mm:ssZ" );
+ } else {
+ date = QDateTime::fromString( dateText, "yyyyMMddTHH:mm:ss" );
+ }
+ } else {
+ date = QDateTime::fromString( dateText, Qt::ISODate );
+ }
+ return QVariant( date );
} else if ( typeName == "array" ) {
QList<QVariant> values;
QDomNode valueNode = typeElement.firstChild().firstChild();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic