**Describe the issue**
```
milovidov-desktop :) SELECT parseDateTimeBestEffort('20220101-010203')

SELECT parseDateTimeBestEffort('20220101-010203')


0 rows in set. Elapsed: 0.153 sec. 

Received exception:
Code: 41. DB::Exception: Cannot read DateTime: unexpected number of decimal digits for time zone offset: 6: While processing parseDateTimeBestEffort('20220101-010203'). (CANNOT_PARSE_DATETIME)
```
{
    time_t whole;
    DateTimeSubsecondPart subsecond = {0, 0}; 
    if constexpr (std::is_same_v<ReturnType, bool>)
    {
        if (!parseDateTimeBestEffortImpl<bool, is_us_style>(whole, in, local_time_zone, utc_time_zone, &subsecond))
            return false;
    }
    else
    {
        parseDateTimeBestEffortImpl<ReturnType, is_us_style>(whole, in, local_time_zone, utc_time_zone, &subsecond);
    }
    DateTime64::NativeType fractional = subsecond.value;
    if (scale < subsecond.digits)
    {
        fractional /= common::exp10_i64(subsecond.digits - scale);
    }
    else if (scale > subsecond.digits)
    {
        fractional *= common::exp10_i64(scale - subsecond.digits);
    }
    res = DecimalUtils::decimalFromComponents<DateTime64>(whole, fractional, scale);
    return ReturnType(true);
}
}
#if defined(__PPC__)
#if !defined(__clang__)
#pragma GCC diagnostic pop
#endif
#endif