QDateTime - Change debug output to ISO Format

Change the debug format from Qt::TextDate to a more detailed ISO style
format including better time spec output.

[ChangeLog][QtCore][QDateTime] The debug datastream is now an ISO-like
format instead of Qt::TextDate

Change-Id: Iddbb8199c3bfbf7bca845482617e7a85da43259d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
John Layt 2013-03-21 19:44:33 +00:00 committed by The Qt Project
parent 0771075f66
commit 94a7576658
3 changed files with 25 additions and 4 deletions

View File

@ -4391,19 +4391,34 @@ void QDateTimePrivate::getUTC(QDate &outDate, QTime &outTime) const
#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DATESTRING)
QDebug operator<<(QDebug dbg, const QDate &date)
{
dbg.nospace() << "QDate(" << date.toString() << ')';
dbg.nospace() << "QDate(" << date.toString(QStringLiteral("yyyy-MM-dd")) << ')';
return dbg.space();
}
QDebug operator<<(QDebug dbg, const QTime &time)
{
dbg.nospace() << "QTime(" << time.toString() << ')';
dbg.nospace() << "QTime(" << time.toString(QStringLiteral("HH:mm:ss.zzz")) << ')';
return dbg.space();
}
QDebug operator<<(QDebug dbg, const QDateTime &date)
{
dbg.nospace() << "QDateTime(" << date.toString() << ')';
QString spec;
switch (date.d->spec) {
case QDateTimePrivate::UTC :
spec = QStringLiteral(" Qt::UTC");
break;
case QDateTimePrivate::OffsetFromUTC :
spec = QString::fromUtf8(" Qt::OffsetFromUTC %1s").arg(date.offsetFromUtc());
break;
case QDateTimePrivate::LocalDST :
case QDateTimePrivate::LocalStandard :
case QDateTimePrivate::LocalUnknown :
default :
spec = QStringLiteral(" Qt::LocalTime");
}
QString output = date.toString(QStringLiteral("yyyy-MM-dd HH:mm:ss.zzz t")) + spec;
dbg.nospace() << "QDateTime(" << output << ')';
return dbg.space();
}
#endif

View File

@ -293,6 +293,10 @@ private:
friend Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QDateTime &);
friend Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QDateTime &);
#endif
#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DATESTRING)
friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QDateTime &);
#endif
};
Q_DECLARE_SHARED(QDateTime)

View File

@ -72,7 +72,9 @@ void tst_QNoDebug::noDebugOutput() const
void tst_QNoDebug::streaming() const
{
QDateTime dt(QDate(1,2,3),QTime(4,5,6));
QTest::ignoreMessage(QtWarningMsg, qPrintable(QString::fromLatin1("QDateTime(\"%1\") ").arg(dt.toString())));
QString debugString = dt.toString(QStringLiteral("yyyy-MM-dd HH:mm:ss.zzz t"))
+ QStringLiteral(" Qt::LocalTime");
QTest::ignoreMessage(QtWarningMsg, qPrintable(QString::fromLatin1("QDateTime(\"%1\") ").arg(debugString)));
qWarning() << dt;
}