Pas*_*cal 4 c++ time c++11 c++-chrono
我有一个uint64_t值代表自纪元以来的纳秒。现在我需要将其转换为time_point.
目前我有这个代码:
std::chrono::time_point<std::chrono::nanoseconds> uptime(std::chrono::nanoseconds(deviceUptime));
Run Code Online (Sandbox Code Playgroud)
后来我想打印类似的东西Fri Feb 10 15:13:04 2017。为此,我想使用此代码:
std::time_t t = std::chrono::system_clock::to_time_t(uptime);
std::cout << "Device time: " << std::ctime(&t) << std::endl;
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
No viable conversion from 'time_point<std::chrono::nanoseconds>' to 'const time_point<std::__1::chrono::system_clock>'
Run Code Online (Sandbox Code Playgroud)
我必须做什么才能将 转换为可以使用time_point的格式ctime?或者有没有更好的方法来解决这个问题?
尝试这个:
uint64_t uptime = 0;
using time_point = std::chrono::system_clock::time_point;
time_point uptime_timepoint{std::chrono::duration_cast<time_point::duration>(std::chrono::nanoseconds(uptime))};
std::time_t t = std::chrono::system_clock::to_time_t(uptime_timepoint);
Run Code Online (Sandbox Code Playgroud)
或者:
std::time_t t = uptime / 1000000000;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4809 次 |
| 最近记录: |