Сбой date::make_zoned в WindowsC++

Программы на C++. Форум разработчиков
Anonymous
 Сбой date::make_zoned в Windows

Сообщение Anonymous »

Я пишу кроссплатформенное приложение на C++ для Windows 11 и CentOS7 (последняя версия GCC — 11).
Мое приложение должно использовать date.h из Мистеру Говарду Хиннанту (а не std::chrono) за анализ строк часового пояса.

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

add_executable(myapp myapp.cpp)
set_target_properties(myapp PROPERTIES CXX_STANDARD 17)
target_link_libraries(myapp PRIVATE date::date date::date-tz)

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

std::string time_with_tz = "2024-09-30 14:53:27.123456 UTC";

std::stringstream ss(time_with_tz);
std::chrono::system_clock::time_point tp_with_tz;
date::from_stream(ss, "%F %T %Z", tp_with_tz); // date::parse does not work for me in both Win & Linux

date::format("%F %T %Z", date::make_zoned(date::current_zone(), tp_with_tz))
Я вручную загрузил последнюю версию tzdb-2024b.tar.lz с http://www.iana.org/time-zones и windowsZones.xml в C:\ пользователи\01258\downloads\tzdata.
Мой код в Linux работает успешно, но тот же код дает сбой в Windows при вызове date::make_zoned. Чего может не хватать в моем заявлении? Я даже пытался установить его с помощью .\vcpkg.exe install date[remote-api]:x64-windows, и это тоже не сработало, все равно вылетало в Windows.

Подробнее здесь: https://stackoverflow.com/questions/790 ... on-windows

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