Parse dates as Qt::RFC2822Date too

[ChangeLog][QtQml] Fix JavaScript Date parsing to correctly accept RC2822 dates.

Task-number: QTBUG-38011
Change-Id: Ic7d3f5b8c624d6780d4c3595fd2efe22c427ffd3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
Albert Astals Cid 2015-01-05 14:44:36 +01:00
parent 3c842d675f
commit 5cfe7d2074
3 changed files with 10 additions and 1 deletions

View File

@ -480,6 +480,8 @@ static inline double ParseString(const QString &s)
QDateTime dt = QDateTime::fromString(s, Qt::TextDate);
if (!dt.isValid())
dt = QDateTime::fromString(s, Qt::ISODate);
if (!dt.isValid())
dt = QDateTime::fromString(s, Qt::RFC2822Date);
if (!dt.isValid()) {
QStringList formats;
formats << QStringLiteral("M/d/yyyy")

View File

@ -17,4 +17,10 @@ Item {
var dt = new Date("");
return isNaN(dt);
}
function test_rfc2822_date()
{
var dt = new Date("Wed, 18 Sep 2013 07:00:51 -0700");
return dt.getTime();
}
}

View File

@ -7361,7 +7361,8 @@ void tst_qqmlecmascript::dateParse()
QMetaObject::invokeMethod(object, "test_is_invalid_qtDateTime", Q_RETURN_ARG(QVariant, q));
QVERIFY(q.toBool() == true);
QMetaObject::invokeMethod(object, "test_rfc2822_date", Q_RETURN_ARG(QVariant, q));
QCOMPARE(q.toLongLong(), 1379512851000LL);
}
void tst_qqmlecmascript::utcDate()