diff options
author | Jens Georg <jensg@openismus.com> | 2011-04-13 08:14:43 (GMT) |
---|---|---|
committer | Qt Commercial Integration <QtCommercial@digia.com> | 2012-01-31 10:24:40 (GMT) |
commit | 59baa0223e9198e28d19985147f478c991db49fc (patch) | |
tree | 9dbb3f69c3cbb29acb3a6fbe96f2ce3a38b87e0d /src/corelib | |
parent | 9d3e97d11b512157da26b51f2a29b80d698db5c7 (diff) | |
download | Qt-59baa0223e9198e28d19985147f478c991db49fc.zip Qt-59baa0223e9198e28d19985147f478c991db49fc.tar.gz Qt-59baa0223e9198e28d19985147f478c991db49fc.tar.bz2 |
Fix QDateTime::toString for Qt::ISODate
Fixes QTBUG-18290 and the "missing Z" from QTBUG-9698
Merge-request: 1149
Reviewed-by: Zeno Albisser <zeno.albisser@nokia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/tools/qdatetime.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index 726b9aa..3889807 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -2497,6 +2497,21 @@ QString QDateTime::toString(Qt::DateFormat f) const return QString(); // failed to convert buf += QLatin1Char('T'); buf += d->time.toString(Qt::ISODate); + switch (d->spec) { + case QDateTimePrivate::UTC: + buf += QLatin1Char('Z'); + break; + case QDateTimePrivate::OffsetFromUTC: { + int sign = d->utcOffset >= 0 ? 1: -1; + buf += QString::fromLatin1("%1%2:%3"). + arg(sign == 1 ? QLatin1Char('+') : QLatin1Char('-')). + arg(d->utcOffset * sign / SECS_PER_HOUR, 2, 10, QLatin1Char('0')). + arg((d->utcOffset / 60) % 60, 2, 10, QLatin1Char('0')); + break; + } + default: + break; + } } #ifndef QT_NO_TEXTDATE else if (f == Qt::TextDate) { |