【问题标题】:C++ equivalent to Python's time.time() in Linux? [duplicate]C++ 相当于 Linux 中 Python 的 time.time()? [复制]
【发布时间】:2015-06-15 23:29:23
【问题描述】:

我有一个 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 策略。两个时间值之间的比较、减法等会比双重比较和双重减法更难。

【问题讨论】:

标签: python c++ linux


【解决方案1】:

要获取自纪元以来的当前时间(以秒为单位)作为浮点值,您可以将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();

【讨论】:

  • Visual Studio 2019 如果您在 上方包含 它将构建,但在编辑器上它显示为错误。 (波浪线下划线)
猜你喜欢
  • 1970-01-01
  • 2011-05-16
  • 2011-04-18
  • 2015-04-21
  • 2014-10-23
  • 2011-03-23
  • 2015-11-07
  • 2015-01-31
  • 1970-01-01
相关资源
最近更新 更多