summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/tools/qdatetime.cpp28
-rw-r--r--tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp4
2 files changed, 7 insertions, 25 deletions
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index dec4d9aaa4..5ce11a43aa 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -891,7 +891,7 @@ QString QDate::toString(Qt::DateFormat format) const
case Qt::DefaultLocaleLongDate:
return QLocale().toString(*this, QLocale::LongFormat);
case Qt::RFC2822Date:
- return toString(QStringLiteral("dd MMM yyyy"));
+ return QLocale::c().toString(*this, QStringLiteral("dd MMM yyyy"));
default:
#ifndef QT_NO_TEXTDATE
case Qt::TextDate:
@@ -1638,9 +1638,6 @@ QString QTime::toString(Qt::DateFormat format) const
case Qt::DefaultLocaleLongDate:
return QLocale().toString(*this, QLocale::LongFormat);
case Qt::RFC2822Date:
- return QString::fromLatin1("%1:%2:%3").arg(hour(), 2, 10, QLatin1Char('0'))
- .arg(minute(), 2, 10, QLatin1Char('0'))
- .arg(second(), 2, 10, QLatin1Char('0'));
case Qt::ISODate:
case Qt::TextDate:
default:
@@ -3548,27 +3545,8 @@ QString QDateTime::toString(Qt::DateFormat format) const
case Qt::DefaultLocaleLongDate:
return QLocale().toString(*this, QLocale::LongFormat);
case Qt::RFC2822Date: {
- buf = toString(QStringLiteral("dd MMM yyyy hh:mm:ss "));
-
- int utcOffset = d->m_offsetFromUtc;
- if (timeSpec() == Qt::LocalTime) {
- QDateTime utc = toUTC();
- utc.setTimeSpec(timeSpec());
- utcOffset = utc.secsTo(*this);
- }
-
- const int offset = qAbs(utcOffset);
- buf += QLatin1Char((offset == utcOffset) ? '+' : '-');
-
- const int hour = offset / 3600;
- if (hour < 10)
- buf += QLatin1Char('0');
- buf += QString::number(hour);
-
- const int min = (offset - (hour * 3600)) / 60;
- if (min < 10)
- buf += QLatin1Char('0');
- buf += QString::number(min);
+ buf = QLocale::c().toString(*this, QStringLiteral("dd MMM yyyy hh:mm:ss "));
+ buf += toOffsetString(Qt::TextDate, d->m_offsetFromUtc);
return buf;
}
default:
diff --git a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
index 0c560df423..0ee40713aa 100644
--- a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
@@ -778,7 +778,11 @@ void tst_QDateTime::toString_rfcDate()
QFETCH(QDateTime, dt);
QFETCH(QString, formatted);
+ // Set to non-English locale to confirm still uses English
+ QLocale oldLocale;
+ QLocale::setDefault(QLocale("de_DE"));
QCOMPARE(dt.toString(Qt::RFC2822Date), formatted);
+ QLocale::setDefault(oldLocale);
}
void tst_QDateTime::toString_enumformat()