Как остановить C++20 std::chrono zoned_time печать GMT-4 вместо EST?
Раньше я использовал библиотеку заголовков «date.h» Говарда Хиннанта, но недавно я переключился на std::chrono C ++ 20 (который в основном является реализацией классной библиотеки Говарда), но я не могу заставить сокращения часовых поясов печатать обычным способом ( например EST для нью-йоркского времени). Все, что я получаю, это GMT-4 (сейчас мы на летнее время).
Я использую MSVC с Visual Studio 2022 PRE, и я читал, что Microsoft использует не полную базу данных IANA, а что-то под названием ICU, которое уже загружено Windows. Может ли это быть причиной отсутствия сокращений?
Вот код, который я использую:
auto tm = std::chrono::system_clock::now();
std::cout << std::format("{:%X %Z}", std::chrono::zoned_time("America/New_York", tm));
Для меня в 22:55:52 в Сингапуре он печатает 10:55:52 GMT-4, а не 10:55:52 EST, что я хочу.
Кто-нибудь знает, как решить эту проблему в Microsoft Visual Studio с помощью стандартного C++20?