-
Notifications
You must be signed in to change notification settings - Fork 216
Description
CLDR defines a time zone for each area where clocks have agreed since the UNIX epoch. However, many of these differences are in the 1970s or 1980, when DST was more of a free-for-all than it currently is.
While we do need to support all time zones for formatting, a time zone picker should not have to list all 445 CLDR time zones. TZDB currently only defines 94 different zones, however it collapses across borders, which we don't want, so I expect we can reduce this to ~220 zones if we just look at the future (~190 ISO territories, very few countries with multiple zones in the future).
Unfortunately TZDB only ever splits zones, it doesn't provide any data like "from 2013, this zone is the same as this other zone". However, this data can be computed from the TZDB during datagen. We would then record that e.g. America/Swift_Current
matches America/Regina
since 1972 and not return it in the timezone iterator if the reference date is higher than 1972. We will need some kind of prioritization information (e.g. population) in order to figure out that Swift Current collapses into Regina and not the other way around.