> OK, but I'm a bit puzzled about the details here. Robert wrote that CLDR
> was planning to ship a patched copy of TZDB in ICU. If so, what's the
> problem with changing TZDB along the lines already suggested? Even with
> such a change, CLDR users will see patched TZDB data, and then CLDR can
> decide on its own schedule how to resolve the "Pacific Time" mess, and
> once it does that it can go back to shipping an unmodified copy of TZDB.
This will fix the issue for Android and Chrome, which use ICU's internal TZDB instead of the system's for formatting. I have no idea if this fix would work for other systems.
> They are not immediate for many of the systems I use. It can take many
> months, particularly with devices that are not networked or that are
> maintained only fitfully by their suppliers.
While there are certainly devices where the updates take months, the primary devices that billions of users interact with every day (Android, iOS, macOS, mainstream Linux distributions) update in a matter of days.
> I don't see a major breakage here. If I understand things correctly,
> America/Vancouver people combining older CLDR with newer TZDB would see
> "Pacific Standard Time" instead of the legally-specified "Pacific Time".
> Although infelicitous to experts, that string isn't "broken": it's close
> enough to the real thing for most users, and only time pedants and maybe
> politicians will care.
It could be argued that Pacific Standard Time is correct now. However, there are certainly users who are aware of the difference between Pacific Daylight Time and Pacific Standard Time. The broader issue is also that America/Los_Angeles will use "Pacific Daylight Time" for UTC-7 this summer, so if Vancouver uses "Pacific Standard Time", to a user that is a strong indication that those are different offsets (in all other cases, "standard" != "daylight"). This matters in scenarios where both time zones are present, such as with time zone pickers, TV schedules, meetings, travel between the time zones, etc.
> A potential constructive suggestion here would be improving programmatic checks in software using CLDR in conjunction with tzdata, such as ICU. In particular, it seems wise to shift away from relying solely on the tm_isdst flag (which per RFC 9636 is subject to the specifics of "law or practice"), and to instead include calculated offsets in consideration.
I think the reason why CLDR hasn't associated "metazones" with offsets was to reduce the amount of churn and required releases. The same name can be used for different offsets at different times: "Yakutsk Time" meant UTC+10 before 2014 and UTC+9 since then, but the 2014 TZDB update didn't require a CLDR update, because that string just changed meaning (well, it always meant "the time in Yakutsk"). Similarly, if the US west coast had announced permanent UTC-7 last week as well, we wouldn't have to change anything in CLDR, all those zones could keep using "Pacific Time", which would now just mean something else. So there is a balance to be kept wrt the amount of information that we track in CLDR (we certainly don't want to maintain our own time zone database).
We have, in fact, added explicit metazone offsets to the CLDR data model in the last version, but so far only used them for some zones where the tm_isdst value from TZDB doesn't agree with our model of what a daylight saving time is (
Europe/Dublin,
Africa/Windhoek). The long term goal is to not require rearguard data anymore, but the cost of course is that we have to maintain these offsets. However, using this data has currently only been implemented in the new ICU4X library, where we're not restricted by ICU's data backward compatibility.
> The workaround should accommodate CLDR's current
> limitation, by marking these timestamps with tm_isdst as requested. The
> plan is to remove the temporary workaround once CLDR is updated to
> remove the limitation, which as I understand it can be done by a CLDR
> release before November.
I'm not thrilled by the plan to retroactively revert the flag again, because then we either have to keep patching the TZDB for this summer anyway, or users will get different display names depending on their TZDB version. But this fixes the immediate issue for us and we can work on solutions in ICU.
> This episode is a bit of a wakeup call for the coordination between TZDB
> and CLDR. Although in the past we've lucked out with similar changes in
> Yukon and elsewhere
This does not seem to be the first TZDB/CLDR issue of this nature. In 2018 the change to Dublin's tm_isdst would have broken ICU (and other consumers afaict) as it would have flipped the summer/winter display names. The solution back then was to create the rearguard format, which ICU/CLDR require to this day, and which some major platforms ship, potentially in part because of ICU. Maybe the takeaway here should be that changes to tm_isdst are as disruptive to CLDR as changes to offsets, so ideally should be done with some lead time.