время в с++ в виде форматированной строки. Последнее время стандартов развелось что то вводят но не стандартизируют, что то помечают как устаревшее и в итоге непонятно чем пользоваться.
Остановился на этом
auto timenow = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
std::ostringstream oss;
oss << std::put_time(std::localtime(&timenow), "%Y-%m-%d %H-%M-%S");
auto str = oss.str();
но ругается на localtime и put_time не стандартизован. Что есть лучше?
Локаль надо предусматривать.
Формат вывода времени локальный нет, а временную зону да, но она вроде учитывается.
Ничего не понял. Строка формата в твоем коде вообще нестандартная. Либо ты берешь формат вывода из локали, либо берешь ISO формат: https://pastebin.com/yryWPSfP
Ну да, мне и нужен свой формат вывода который будет задан в настройках программы. Вопрос как правильно сформировать строку с датой. Если компилятор на всё ругается. На gmtime из вашего примера тоже ругается как на устревший.
Обсуждают сегодня