Как остановить 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?

0 ответов

Другие вопросы по тегам