Как получить часовой пояс Америки/Монреаля, используя std::chrono + MSVC 2022 + Windows 11C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как получить часовой пояс Америки/Монреаля, используя std::chrono + MSVC 2022 + Windows 11

Сообщение Anonymous »

Используя MSVC 2022 с Windows 11, когда я пытаюсь с помощью std::chrono получить некоторую информацию о часовом поясе, он терпит неудачу с исключением для определенного часового пояса, который я извлек из:

Код: Выделить всё

std::chrono::get_tzdb().zones
Функция What() просто возвращает неизвестную ошибку!
Я упростил код, чтобы показать проблему.
Что я хотел бы сделать, так это помочь нам оператор if, чтобы проверить, можно ли использовать часовой пояс!
на данный момент я должен «посыпать» свой код с помощью try/catch
вот код с ошибкой:< /p>

Код: Выделить всё

#include 

int main(int, char**)
{
using namespace std::chrono;
auto z = std::chrono::get_tzdb().locate_zone("America/Montreal");
if (z != nullptr)   // useless
{
auto QuebecDay = 2023y / 6 / 24;
auto info = z->get_info(std::chrono::sys_days(QuebecDay));
}
return 0;
}
У меня та же проблема со многими часовыми поясами, которые я перечисляю из tzdb.
Мой файл icu.dll датирован 14 ноября 2023 года, так что это совсем недавно
Я используя Windows 11 Professional 23H2

Подробнее здесь: https://stackoverflow.com/questions/783 ... windows-11
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»