-
Bug
-
Resolution: Invalid
-
P2: Important
-
None
-
6.7.3, 6.8.3, 6.9.1, 6.10.0
-
None
-
-
76afe79da (dev), 3823d288f (6.10), ea658356d (6.9), 3a0089942 (tqtc/lts-6.8), 18b0dd976 (tqtc/lts-6.5)
Summary
Using QTimeZone(Qt::UTC) results in an invalid offset of +1 second, causing incorrect QDateTime values when used in time zone conversions.
Reproduction Code
auto dateTime = QDateTime::currentDateTime(); auto actualDateTime1 = dateTime; actualDateTime1.setTimeZone(QTimeZone(Qt::UTC)); qDebug() << "Actual DateTime 1:" << actualDateTime1; auto actualDateTime2 = dateTime; actualDateTime2.setTimeZone(QTimeZone("UTC")); qDebug() << "Actual DateTime 2:" << actualDateTime2;
Observed Output
Actual DateTime 1: QDateTime(2025-08-04 00:13:36.973 UTC+00:00:01 Qt::TimeZone UTC+00:00:01) Actual DateTime 2: QDateTime(2025-08-04 00:13:36.973 UTC Qt::TimeZone UTC)
Expected Output
Both conversions should produce the same result — with UTC+00:00:00.
Workaround
Use QTimeZone("UTC") instead of QTimeZone(Qt::UTC).
| For Gerrit Dashboard: QTBUG-138893 | ||||||
|---|---|---|---|---|---|---|
| # | Subject | Branch | Project | Status | CR | V |
| 666359,7 | Suppress construction of QTimeZone(Qt::TimeSpec) | dev | qt/qtbase | Status: MERGED | +2 | 0 |
| 674006,2 | Suppress construction of QTimeZone(Qt::TimeSpec) | 6.10 | qt/qtbase | Status: MERGED | +2 | 0 |
| 674007,2 | Suppress construction of QTimeZone(Qt::TimeSpec) | 6.9 | qt/qtbase | Status: MERGED | +2 | 0 |
| 674026,5 | Suppress construction of QTimeZone(Qt::TimeSpec) | tqtc/lts-6.8 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |
| 674219,3 | Suppress construction of QTimeZone(Qt::TimeSpec) | tqtc/lts-6.5 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |