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>
This commit is contained in:
Edward Welbourne 2022-03-23 15:30:59 +01:00
parent d9602efe88
commit 934b528715

View File

@ -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;
}