-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed
Labels
chronoC++20 chronoC++20 chronoexternalThis issue is unrelated to the STLThis issue is unrelated to the STLresolvedSuccessfully resolved without a commitSuccessfully resolved without a commit
Description
While implementing C++20 <chrono> time zones, @d-winsor discovered divergence between what ICU.dll implements and what the IANA database contains:
STL/tests/std/tests/P0355R7_calendars_and_time_zones_time_zones/test.cpp
Lines 151 to 157 in 027fc9f
| // 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
Labels
chronoC++20 chronoC++20 chronoexternalThis issue is unrelated to the STLThis issue is unrelated to the STLresolvedSuccessfully resolved without a commitSuccessfully resolved without a commit