Случайный модульный тест начал сбой, и я не могу вспомнить, как касался чего -либо соответствующего. Вот минимальный воспроизводимый (на моей машине) Пример: < /p>
#include
#include
#include
#include
using clock_type = std::chrono::system_clock;
using duration_t = std::chrono::microseconds;
using timepoint_t = std::chrono::time_point;
std::string to_eastern_string(timepoint_t tp)
{
std::ostringstream oss;
auto tz = std::chrono::locate_zone("America/New_York");
oss to_local(tp));
return oss.str();
}
timepoint_t parse_eastern_time(std::string dtstr)
{
std::istringstream iss{std::move(dtstr)};
std::chrono::local_time tp;
iss >> std::chrono::parse("%F %T",tp);
return std::chrono::locate_zone("America/New_York")->to_sys(tp);
}
int main(){
timepoint_t t = parse_eastern_time("2024-11-19 09:30:00.037001");
std::cout
На Godbolt я получаю < /p>
2024-11-19 09:30:00.037001
< /code>
Но когда я запускаю его на своей машине: < /p>
g++ -std=c++20 -o test test.cpp
./test
terminate called after throwing an instance of 'std::runtime_error'
what(): std::chrono::tzdb: cannot locate zone: America/New_York
Aborted (core dumped)
< /code>
Что дает? Fwiw Я использую Ubuntu 24.04.1 LTS < /p>
РЕДАКТИРОВАТЬ: Total Guess, но будет ли это связано с тем, что я в последнее время связываюсь с переменными окружающей среды? Я устанавливал ld_preload =/usr/lib/x86_64-linux-gnu/libstdc ++. So.6
Случайный модульный тест начал сбой, и я не могу вспомнить, как касался чего -либо соответствующего. Вот минимальный воспроизводимый (на моей машине) Пример: < /p> [code]#include #include #include #include
using clock_type = std::chrono::system_clock; using duration_t = std::chrono::microseconds; using timepoint_t = std::chrono::time_point;
timepoint_t t = parse_eastern_time("2024-11-19 09:30:00.037001"); std::cout На Godbolt я получаю < /p> 2024-11-19 09:30:00.037001 < /code> Но когда я запускаю его на своей машине: < /p> g++ -std=c++20 -o test test.cpp ./test terminate called after throwing an instance of 'std::runtime_error' what(): std::chrono::tzdb: cannot locate zone: America/New_York Aborted (core dumped) < /code> Что дает? Fwiw Я использую Ubuntu 24.04.1 LTS < /p> РЕДАКТИРОВАТЬ: Total Guess, но будет ли это связано с тем, что я в последнее время связываюсь с переменными окружающей среды? Я устанавливал ld_preload =/usr/lib/x86_64-linux-gnu/libstdc ++. So.6 [/code] в последнее время.