From 514af281e39cb54daf667305b3f98e0782dbe689 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 14 Jan 2015 16:27:31 -0800 Subject: 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 --- src/corelib/tools/qdatetime.cpp | 8 +++----- src/corelib/tools/qtimezone.cpp | 23 +++++++++++++++++++++++ src/corelib/tools/qtimezone.h | 2 ++ 3 files changed, 28 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index 69d4bd7d99..f3dfb5347a 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -3186,13 +3186,11 @@ QTimeZone QDateTime::timeZone() const d->m_timeZone = QTimeZone(d->m_offsetFromUtc); return d->m_timeZone; case Qt::UTC: - if (!d->m_timeZone.isValid()) - d->m_timeZone = QTimeZone(QTimeZonePrivate::utcQByteArray()); - return d->m_timeZone; - case Qt::TimeZone : + return QTimeZone::utc(); + case Qt::TimeZone: return d->m_timeZone; case Qt::LocalTime: - return QTimeZone(QTimeZone::systemTimeZoneId()); + return QTimeZone::systemTimeZone(); } return QTimeZone(); } diff --git a/src/corelib/tools/qtimezone.cpp b/src/corelib/tools/qtimezone.cpp index fb5af2bf4a..30c4c60167 100644 --- a/src/corelib/tools/qtimezone.cpp +++ b/src/corelib/tools/qtimezone.cpp @@ -788,6 +788,29 @@ QByteArray QTimeZone::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. diff --git a/src/corelib/tools/qtimezone.h b/src/corelib/tools/qtimezone.h index ef0bdc57cd..e35cee6bbe 100644 --- a/src/corelib/tools/qtimezone.h +++ b/src/corelib/tools/qtimezone.h @@ -117,6 +117,8 @@ public: OffsetDataList transitions(const QDateTime &fromDateTime, const QDateTime &toDateTime) const; static QByteArray systemTimeZoneId(); + static QTimeZone systemTimeZone(); + static QTimeZone utc(); static bool isTimeZoneIdAvailable(const QByteArray &ianaId); -- cgit v1.2.3