From: Mitch Curtis Date: Fri, 21 Sep 2012 09:30:55 +0000 (+0200) Subject: Output leading zeroes for yyyy date formats in QLocale::toString(). X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=811bf4da67cedea0daa40f2fff805003687e9d6e;p=profile%2Fivi%2Fqtbase.git Output leading zeroes for yyyy date formats in QLocale::toString(). Converting the date 1 January 0001 to a string in the format "dd MMMM yyyy" currently results in the string "01 January 1", but it should be "01 January 0001". Task-number: QTBUG-27287 Change-Id: Ia025da7343d1c36aaee34c47c6db551a6e89595f Reviewed-by: Thiago Macieira --- diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 368cb44..97946b5 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -2262,7 +2262,7 @@ QString QLocalePrivate::dateTimeToString(const QString &format, const QDate *dat switch (repeat) { case 4: - result.append(longLongToString(date->year())); + result.append(longLongToString(date->year(), -1, 10, 4, QLocalePrivate::ZeroPadded)); break; case 2: result.append(longLongToString(date->year() % 100, -1, 10, 2, diff --git a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp index a8aded5..299ae10 100644 --- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp +++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp @@ -875,6 +875,7 @@ void tst_QLocale::formatDate_data() QTest::newRow("28") << QDate() << "'\"yy\"'" << ""; QTest::newRow("29") << QDate(1974, 12, 1) << "hh:mm:ss.zzz ap d'd'dd/M/yy" << "hh:mm:ss.zzz ap 1d01/12/74"; + QTest::newRow("dd MMMM yyyy") << QDate(1, 1, 1) << "dd MMMM yyyy" << "01 January 0001"; } void tst_QLocale::formatDate() @@ -974,6 +975,9 @@ void tst_QLocale::formatDateTime_data() QTest::newRow("12C") << "C" << QDateTime(QDate(1974, 12, 1), QTime(15, 14, 13)) << "d'd'dd/M/yyh" << "1d01/12/7415"; + QTest::newRow("dd MMMM yyyy, hh:mm:ss") << "C" << QDateTime(QDate(1, 1, 1), QTime(12, 00, 00)) + << "dd MMMM yyyy, hh:mm:ss" << "01 January 0001, 12:00:00"; + QTest::newRow("20C") << "C" << QDateTime(QDate(1974, 12, 1), QTime(15, 14, 13)) << "foo" << "foo"; QTest::newRow("21C") << "C" << QDateTime(QDate(1974, 12, 1), QTime(15, 14, 13))