将time_point转换为字符串的最漂亮的方法是什么?

时间:2018-01-11 22:44:56

标签: c++ string c++11 c++14 chrono

简单的问题,如何使用尽可能少的代码正确地将std::chrono::time_point转换为std::string

注意:我不想将coutput_time()一起使用。接受C ++ 11和C ++ 14解决方案。

2 个答案:

答案 0 :(得分:1)

#include "date/date.h"
#include <type_traits>

int
main()
{
    auto s = date::format("%F %T", std::chrono::system_clock::now());
    static_assert(std::is_same<decltype(s), std::string>{}, "");
}
找到{p> date/date.h here。它是一个仅限标头的库,C ++ 11/14/17。它有written documentationvideo introduction

答案 1 :(得分:0)

仅使用标准库标题:

    #include <ctime>
    #include <chrono>
    #include <string>

    using sc = std::chrono::system_clock ;
    std::time_t t = sc::to_time_t(sc::now());
    char buf[20];
    strftime(buf, 20, "%d.%m.%Y %H:%M:%S", localtime(&t));
    std::string s(buf);