Skip to content

Support some kind of time zone deduplication #6734

@robertbastian

Description

@robertbastian

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions