【问题标题】:Anyone recognize this timestamp number format? 1590057793678624 (Hint: It's not unix time)有人认识这种时间戳数字格式吗? 1590057793678624(提示:现在不是unix时间)
【发布时间】:2020-11-10 15:37:25
【问题描述】:

这似乎不是 Unix 时间,因为那是 50,388,895 年

我正在从产品接收数据,我认为它是 unix 时间戳,但事实并非如此。

不知道在哪里可以搜索。

【问题讨论】:

  • 什么产品?你读过文档吗?
  • 自纪元以来的微秒。只需除以一百万(或截去最后 6 位)即可获得 Unix 时间戳。
  • 当前 unix 时间戳(截至 2020-07-21 11:30)接近 1595323718以秒为单位。如果该数字应该代表一个 unix 时间戳,它只是以微秒表示。只需将其除以 1000000,即可得到一个共同的时间戳。

标签: unix time timestamp datetime-format


【解决方案1】:

使用 std::chrono 会更容易

unsigned long long microseconds = std::stoull(microsecondsString);    //arriving timestamp in microseconds
std::chrono::microseconds microseconds_chrono(microseconds);
std::chrono::duration<double> seconds_chrono(microseconds_chrono);
double timestamp_seconds_double = seconds_chrono.count();

这就是我得到双倍所需的方式

我想了解如何将作为字符串从微秒传入的 unix 时间戳转换为双精度

std::chrono 真的很好,我不回去了

【讨论】:

    【解决方案2】:

    似乎是微秒

    研发团队给了我这行代码

    (measure::ConvertDuration<microseconds_d>(tpNs.time_since_epoch())).count();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      • 2016-07-17
      • 2016-04-26
      • 2015-09-08
      相关资源
      最近更新 更多