【发布时间】:2012-02-10 00:01:34
【问题描述】:
我有一个分数纪元时间戳,表示为double,我想将其转换为适当的std::chrono::time_point。纪元是自 1970 年 1 月 1 日以来通常的 UNIX 纪元。我知道存在std::chrono::system_clock::from_time_t,但time_t 没有小数部分。使用 C++11 实现此目的的最佳方法是什么?
这个问题与unix timestamp to boost::posix_time::ptime 相关,只是它要求的是 C++11 而不是 Boost 版本。
【问题讨论】:
-
你读过N2661吗?
-
"(...) 小数纪元时间戳,表示为
double" 什么单位?你知道时代吗? -
@R.MartinhoFernandes:它是自 1970 年 1 月 1 日以来的标准 UNIX 时代。
-
如果纳秒足够好,试试
std::chrono::system_clock::from_time_t(x) + std::chrono::nanoseconds(1e9*std::fmod(x,1))?
标签: c++ c++11 unix-timestamp boost-date-time chrono