我正在尝试打印这样的时间戳。
2018-05-24T20:16:07.339271
我不想使用Boost或任何第三方库。我想只使用标准库。我正在使用Clang 6,所以如果有必要,我应该可以使用C ++ 17.
我开始关注chrono
并有类似的事情。
auto now = std::chrono::high_resolution_clock::now();
但是,我不确定如何从上面获取我想要的日期时间格式。
答案 0 :(得分:2)
猜猜你最好的选择是使用std::localtime
+ std::put_time
答案 1 :(得分:2)
以下代码仅使用标准C ++。 * loc_time 和 milli_secs 中包含的数据可用于以本地时间生成所需的输出。要以UTC格式获取输出,请使用std :: gmtime而不是std :: localtime。
// get actual system time
const auto now = std::chrono::system_clock::now();
// get seconds since 1970/1/1 00:00:00 UTC
const auto sec_utc = std::chrono::system_clock::to_time_t(now);
// get pointer to tm struct (not thread safe!)
const auto loc_time = std::localtime(&sec_utc);
// get time_point from sec_utc (note: no milliseconds)
const auto now_s = std::chrono::system_clock::from_time_t(sec_utc);
// get milliseconds (difference between now and now_s
const auto milli_secs = std::chrono::duration<double, std::milli>(now - now_s).count() * .001;
答案 2 :(得分:-3)
standard library c++ does not provide a proper date type, so you can use
structs and functions from c which is inherited on c++. <ctime> header
file need to include in c++ program. i think below code will help you.
time_t now = time(0);
cout<<now<<endl;
tm *lt = localtime(&now);