【发布时间】:2018-01-03 20:17:44
【问题描述】:
大家好,我创建了一个 c++ 应用程序,它使用 std::chrono 来计算时间差。
在某些时候,我将文件上传到服务器,作为响应,我从 receive.php 获得一个纪元时间戳,该时间戳通知文件完全上传到服务器时的时间戳。我想计算这个纪元时间戳和我选择的起点之间的时间差异,因为我不应该改变这个 receive.php 的工作方式。
到目前为止,我试图通过使用以下代码来实现这一点:
#include <iostream>
#include <chrono>
using namespace std;
int main()
{
auto epoch1 = std::chrono::system_clock::now().time_since_epoch() ;
auto epoch2= std::chrono::duration<long long>(epoch_time_stamp);
auto diff = epoch1 - epoch2 ;
auto s = std::chrono::duration_cast<std::chrono::milliseconds>(diff);
cout << s.count() << endl;
}
其中 epoch_time_stamp 是一个 13 位的纪元时间戳,例如 1501190040123。
但是我得到错误的结果。我尝试将 epoch_time_stamp 同时作为 int64_t 和 time_t 传递,但没有成功。由于我对使用 std::chrono 很陌生,我认为 epoch2 的演员表不正确。
有什么想法我应该怎么做?
【问题讨论】: