Add QTimeZone::{systemTimeZone,utc}

[ChangeLog][QtCore][QTimeZone] Added methods systemTimeZone() and utc()
that return QTimeZone objects for the system time zone and for UTC,
respectively.

Change-Id: Ic5d393bfd36e48a193fcffff13b96821bb8514b9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
Thiago Macieira 2015-01-14 16:27:31 -08:00
parent 3d051d41a3
commit 514af281e3
3 changed files with 28 additions and 5 deletions

View File

@ -3186,13 +3186,11 @@ QTimeZone QDateTime::timeZone() const
d->m_timeZone = QTimeZone(d->m_offsetFromUtc); d->m_timeZone = QTimeZone(d->m_offsetFromUtc);
return d->m_timeZone; return d->m_timeZone;
case Qt::UTC: case Qt::UTC:
if (!d->m_timeZone.isValid()) return QTimeZone::utc();
d->m_timeZone = QTimeZone(QTimeZonePrivate::utcQByteArray()); case Qt::TimeZone:
return d->m_timeZone;
case Qt::TimeZone :
return d->m_timeZone; return d->m_timeZone;
case Qt::LocalTime: case Qt::LocalTime:
return QTimeZone(QTimeZone::systemTimeZoneId()); return QTimeZone::systemTimeZone();
} }
return QTimeZone(); return QTimeZone();
} }

View File

@ -788,6 +788,29 @@ QByteArray QTimeZone::systemTimeZoneId()
return global_tz->backend->systemTimeZoneId(); return global_tz->backend->systemTimeZoneId();
} }
/*!
\since 5.5
Returns a QTimeZone object that refers to the local system time, as
specified by systemTimeZoneId().
\sa utc()
*/
QTimeZone QTimeZone::systemTimeZone()
{
return QTimeZone(QTimeZone::systemTimeZoneId());
}
/*!
\since 5.5
Returns a QTimeZone object that refers to UTC (Universal Time Coordinated).
\sa systemTimeZone()
*/
QTimeZone QTimeZone::utc()
{
return QTimeZone(QTimeZonePrivate::utcQByteArray());
}
/*! /*!
Returns \c true if a given time zone \a ianaId is available on this system. Returns \c true if a given time zone \a ianaId is available on this system.

View File

@ -117,6 +117,8 @@ public:
OffsetDataList transitions(const QDateTime &fromDateTime, const QDateTime &toDateTime) const; OffsetDataList transitions(const QDateTime &fromDateTime, const QDateTime &toDateTime) const;
static QByteArray systemTimeZoneId(); static QByteArray systemTimeZoneId();
static QTimeZone systemTimeZone();
static QTimeZone utc();
static bool isTimeZoneIdAvailable(const QByteArray &ianaId); static bool isTimeZoneIdAvailable(const QByteArray &ianaId);