Skip to content

<chrono>: Should divergence between ICU and IANA be reported? #1786

@StephanTLavavej

Description

@StephanTLavavej

While implementing C++20 <chrono> time zones, @d-winsor discovered divergence between what ICU.dll implements and what the IANA database contains:

// these are some example in which the ICU.dll and IANA database diverge in what they consider a zone or a link
assert(_Locate_zone_impl(my_tzdb.links, "Atlantic/Faroe") != nullptr); // is a time_zone in IANA
assert(_Locate_zone_impl(my_tzdb.zones, "Africa/Addis_Ababa") != nullptr); // is a time_zone_link in IANA
assert(_Locate_zone_impl(my_tzdb.links, "PST") != nullptr); // time_zone_link does not exist in IANA
assert(_Locate_zone_impl(my_tzdb.links, "Africa/Asmara") != nullptr); // matches IANA but target is wrong
assert(_Locate_zone_impl(my_tzdb.links, "Africa/Asmara")->target() == "Africa/Asmera"); // target == Africa/Nairobi
assert(_Locate_zone_impl(my_tzdb.zones, "America/Nuuk") == nullptr); // does not exist in ICU (very rare)

Are these issues that should be reported to ICU upstream?

Metadata

Metadata

Assignees

No one assigned

    Labels

    chronoC++20 chronoexternalThis issue is unrelated to the STLresolvedSuccessfully resolved without a commit

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions