我有一个Python程序和一个C ++程序。他们通过IPC进行沟通。
Python将向C ++程序发送JSON {" event_time":time.time()}。
C ++程序将记录此时间,并根据通过Python发送的时间将事件插入到自己的事件队列中。我需要从Python和c ++中比较和减去两个时间值的操作。
Python的time.time()是一个简单的双重数字,可以轻松进行比较和排序(例如,它类似于1428657539.065105)。
C ++中有没有与此值相同的内容?他们至少应该同意毫秒精度而不是秒精度?即,如果我在同一时间执行这两个程序,它们应该以秒为单位获得相同的值,并在毫秒范围内获得微小的差异。
如果没有,那么我必须回归使用YEAR,MONTH,DAY,HOUR,MIN,SEC,MILLISECOND策略。比较,两个时间值之间的减法等将比双重比较和双减法更难。
答案 0 :(得分:2)
要获取自纪元以来的当前时间(以秒为单位)作为浮点值,您可以duration_cast
到浮点持续时间类型:
#include <chrono>
double fractional_seconds_since_epoch
= std::chrono::duration_cast<std::chrono::duration<double>>(
std::chrono::system_clock::now().time_since_epoch()).count();