summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2022-03-23 15:30:59 +0100
committerEdward Welbourne <edward.welbourne@qt.io>2022-03-25 17:04:38 +0100
commit934b5287152006807178b93119aa166f0751df87 (patch)
tree50e2e0d9bf0963a8e65d087dff1526a9299fcca1 /src
parentd9602efe8873083c7eb5171dc26b2ecdfa071841 (diff)
Fix QIcuTimeZonePrivate::data() before the first transition
Provide valid data, since ICU can, by the means we used before the transition API was introduced. Task-number: QTBUG-99747 Pick-to: 6.3 6.2 Change-Id: I4d4a1201db2255b98901dacb83169ae4ae25ef05 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/time/qtimezoneprivate_icu.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/corelib/time/qtimezoneprivate_icu.cpp b/src/corelib/time/qtimezoneprivate_icu.cpp
index 1f07057168..f343e0fec2 100644
--- a/src/corelib/time/qtimezoneprivate_icu.cpp
+++ b/src/corelib/time/qtimezoneprivate_icu.cpp
@@ -429,12 +429,14 @@ QTimeZonePrivate::Data QIcuTimeZonePrivate::data(qint64 forMSecsSinceEpoch) cons
#if U_ICU_VERSION_MAJOR_NUM == 50
data = ucalTimeZoneTransition(m_ucal, UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE,
forMSecsSinceEpoch);
-#else
- ucalOffsetsAtTime(m_ucal, forMSecsSinceEpoch, &data.standardTimeOffset,
- &data.daylightTimeOffset);
- data.offsetFromUtc = data.standardTimeOffset + data.daylightTimeOffset;
- data.abbreviation = abbreviation(forMSecsSinceEpoch);
-#endif // U_ICU_VERSION_MAJOR_NUM == 50
+ if (data.atMSecsSinceEpoch == invalidMSecs()) // before first transition
+#endif // U_ICU_VERSION_MAJOR_NUM >= 50
+ {
+ ucalOffsetsAtTime(m_ucal, forMSecsSinceEpoch, &data.standardTimeOffset,
+ &data.daylightTimeOffset);
+ data.offsetFromUtc = data.standardTimeOffset + data.daylightTimeOffset;
+ data.abbreviation = abbreviation(forMSecsSinceEpoch);
+ }
data.atMSecsSinceEpoch = forMSecsSinceEpoch;
return data;
}