diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2022-03-23 15:30:59 +0100 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2022-03-25 17:04:38 +0100 |
commit | 934b5287152006807178b93119aa166f0751df87 (patch) | |
tree | 50e2e0d9bf0963a8e65d087dff1526a9299fcca1 /src | |
parent | d9602efe8873083c7eb5171dc26b2ecdfa071841 (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.cpp | 14 |
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; } |