c++ - How to find the time difference in milliseconds between an epoch timestamp and std::chrono::system_clock::now -
hi have created c++ app among others uses std::chrono in order calculate time differences.
@ point upload file server , response epoch timestamp receive.php informs timestamp when file uploaded server. i'd calculate time diff between epoch time stamp , starting point of choice since should not change receive.php way of working. far tried achive using following code:
#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; } where epoch_time_stamp 13 digit epoch timestamp e.x 1501190040123.
false results. tried pass epoch_time_stamp both int64_t , time_t no success.since i'm quite new @ using std::chrono assume cast of epoch2 not correct.
any ideas should do?
as know, epoch_time_stamp count of milliseconds since 1970-01-01 00:00:00 utc. when say:
auto epoch2= std::chrono::duration<long long>(epoch_time_stamp); you quietly converting count of milliseconds count of seconds. can convert count of milliseconds with:
auto epoch2= std::chrono::duration<long long, std::milli>(epoch_time_stamp); and think start getting results right you.
i find helpful create templated using alias this:
template <class d> using sys_time = std::chrono::time_point<std::chrono::system_clock, d>; now sys_time<milliseconds> time_point counts milliseconds since epoch. allow simplify code down to:
auto remote_time = sys_time<milliseconds>{milliseconds{epoch_time_stamp}}; cout << duration_cast<milliseconds>(system_clock::now() - remote_time).count() << "ms\n"; for more details <chrono>, please see video tutorial.
Comments
Post a Comment