Std :: chrono :: tzdb: не может найти зону: America/new_yorkC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std :: chrono :: tzdb: не может найти зону: America/new_york

Сообщение Anonymous »

Случайный модульный тест начал сбой, и я не могу вспомнить, как касался чего -либо соответствующего. Вот минимальный воспроизводимый (на моей машине) Пример: < /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 
в последнее время.

Подробнее здесь: https://stackoverflow.com/questions/794 ... a-new-york
Ответить

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

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

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

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

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