Если я пытаюсь установить день в tm
с помощью std::get_time
, то ничего не происходит, но входной поток находится в состоянии сбоя, что означает, что произошла ошибка анализа.
Что не таксо следующим кодом?
{ // setting time works
std::tm t{};
std::istringstream ss("01:02:03");
ss.imbue(std::locale("de_DE"));
ss >> std::get_time(&t, "%H:%M:%S");
std::cout << ss.fail() << std::endl;
std::cout << std::put_time(&t, "%c") << '\n';
}
{ // setting day of month did not work
std::tm t{};
std::istringstream ss("2");
ss.imbue(std::locale("de_DE"));
ss >> std::get_time(&t, "%d");
std::cout << ss.fail() << std::endl;
std::cout << std::put_time(&t, "%c") << '\n';
}
Вывод:
0
Sun Jan 0 01:02:03 1900
1
Sun Jan 0 00:00:00 1900