diff options
author | Qt CI Bot <qt_ci_bot@qt-project.org> | 2021-04-16 14:49:26 +0000 |
---|---|---|
committer | Qt CI Bot <qt_ci_bot@qt-project.org> | 2021-04-16 14:49:26 +0000 |
commit | 07d4a981a23665ea8206a2faf6e0c99e8bf2052c (patch) | |
tree | 49d34ef6cc077a87fc308c71f77cddc6174e239e /src/corelib | |
parent | 38e111158a38507c63fd70f9ee18b9116b537976 (diff) | |
parent | c3aa4cf95257416bb6bcfb43c9e0e54b9af36b4b (diff) |
Merge integration refs/builds/qtci/dev/1618561273
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/time/qtimezone.cpp | 24 | ||||
-rw-r--r-- | src/corelib/time/qtimezoneprivate.cpp | 5 |
2 files changed, 19 insertions, 10 deletions
diff --git a/src/corelib/time/qtimezone.cpp b/src/corelib/time/qtimezone.cpp index b9c6d727c8..9ccb0e5f02 100644 --- a/src/corelib/time/qtimezone.cpp +++ b/src/corelib/time/qtimezone.cpp @@ -607,9 +607,11 @@ QString QTimeZone::abbreviation(const QDateTime &atDateTime) const int QTimeZone::offsetFromUtc(const QDateTime &atDateTime) const { - if (isValid()) - return d->offsetFromUtc(atDateTime.toMSecsSinceEpoch()); - + if (isValid()) { + const int offset = d->offsetFromUtc(atDateTime.toMSecsSinceEpoch()); + if (offset != QTimeZonePrivate::invalidSeconds()) + return offset; + } return 0; } @@ -627,9 +629,11 @@ int QTimeZone::offsetFromUtc(const QDateTime &atDateTime) const int QTimeZone::standardTimeOffset(const QDateTime &atDateTime) const { - if (isValid()) - return d->standardTimeOffset(atDateTime.toMSecsSinceEpoch()); - + if (isValid()) { + const int offset = d->standardTimeOffset(atDateTime.toMSecsSinceEpoch()); + if (offset != QTimeZonePrivate::invalidSeconds()) + return offset; + } return 0; } @@ -647,9 +651,11 @@ int QTimeZone::standardTimeOffset(const QDateTime &atDateTime) const int QTimeZone::daylightTimeOffset(const QDateTime &atDateTime) const { - if (hasDaylightTime()) - return d->daylightTimeOffset(atDateTime.toMSecsSinceEpoch()); - + if (hasDaylightTime()) { + const int offset = d->daylightTimeOffset(atDateTime.toMSecsSinceEpoch()); + if (offset != QTimeZonePrivate::invalidSeconds()) + return offset; + } return 0; } diff --git a/src/corelib/time/qtimezoneprivate.cpp b/src/corelib/time/qtimezoneprivate.cpp index be00f658bc..9053d12f01 100644 --- a/src/corelib/time/qtimezoneprivate.cpp +++ b/src/corelib/time/qtimezoneprivate.cpp @@ -224,7 +224,10 @@ QString QTimeZonePrivate::abbreviation(qint64 atMSecsSinceEpoch) const int QTimeZonePrivate::offsetFromUtc(qint64 atMSecsSinceEpoch) const { - return standardTimeOffset(atMSecsSinceEpoch) + daylightTimeOffset(atMSecsSinceEpoch); + const int std = standardTimeOffset(atMSecsSinceEpoch); + const int dst = daylightTimeOffset(atMSecsSinceEpoch); + const int bad = invalidSeconds(); + return std == bad || dst == bad ? bad : std + dst; } int QTimeZonePrivate::standardTimeOffset(qint64 atMSecsSinceEpoch) const |