Как перевести тип std::chrono::system_clock::time_point в string?

Как перевести тип std::chrono::system_clock::time_point в std::string?


Ответы (1 шт):

Автор решения: KoVadim

Вот три разных варианта, выбирайте

#include <iostream>
#include <vector>
#include <chrono>
#include <ctime>
#include <iomanip>

int main()
{

    auto now = std::chrono::system_clock::now();
    auto tt = std::chrono::system_clock::to_time_t(now);
    
    {
        // просто вывод в консоль
        std::cout << std::put_time(std::localtime(&tt), "%F %T") << '\n';
    }
    {
        // выводим в строковый поток, потом уже в строку
        std::stringstream ss;
        ss << std::put_time(std::localtime(&tt), "%F %T");
        std::string st = ss.str();
        std::cout << st << '\n';
    }
    {
        // в массив символов, потом выводим, но для программистов на си это уже строка
        char buf[100];
        strftime(buf, 100, "%F %T", std::localtime(&tt));
        std::cout << buf;
    }
}
→ Ссылка