summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
diff options
context:
space:
mode:
authorJohn Layt <jlayt@kde.org>2013-10-17 19:02:03 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-17 23:31:10 +0200
commit93f5e0598ad2c7738409eb027fc868ab35db5920 (patch)
treef8af354e20b47174246e1c51e805c6a85829bd28 /src/corelib/tools
parent72544a5142b19454f9636c567ba199161c02e79b (diff)
QDateTime - Fix RFC 2822 Date Formatting
The RFC 2822 date format should always use en_US locale for month and day names instead of whatever the system locale is. Also remove some duplicate code. Change-Id: Ia2f7ee405b4e0e2f04980301783b9488628da73f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r--src/corelib/tools/qdatetime.cpp28
1 files changed, 3 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: