首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >潜望镜时间戳

问潜望镜时间戳
EN

Stack Overflow用户
提问于 2015-11-18 01:03:19
回答 1查看 610关注 0票数 2

当我执行以下请求:在Periscope应用程序中POST https://signer.periscope.tv/sign HTTP/1.1时,它会生成3个时间戳。

下面是三个例子,这些时间戳,但我不知道他们是什么意思。

我知道数字3总是Linux时间戳,但是1&2是什么,它们与Linux时间戳有什么关系?

什么是"tpForBroadcasterFrame“,与时间戳有什么关系?

  • 1 ntpForBroadcasterFrame: 15704244410975025152
  • 2 ntpForLiveFrame : 15704244125303865344
  • 3时间戳: 1447440545
  • 1 ntpForBroadcasterFrame: 15704244443861590016
  • 2 ntpForLiveFrame : 15704244125303865344
  • 3时间戳: 1447440553
  • 1 ntpForBroadcasterFrame: 15704244474141110272
  • 2 ntpForLiveFrame : 15704244125303865344
  • 3时间戳: 1447440560
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-18 02:36:01

前两个看起来是网络时间协议时间戳。第三个更准确地称为POSIX时间戳。

NTP将数据存储在一个无符号64位整数中,该整数表示1900年以来32位秒和32位小数秒,因此.

15704244410975025152的前32位掩蔽自1900年以来就有3656429334秒。其他32位没有映射到POSIX时间戳,因为它的最小分辨率是1秒。

减去2208988800,1900年至1970年之间的秒数。,从3656429334给1447440534秒后,从Posix时代,或星期五,2015年11月13日18:48:54格林尼治时间

快速黑客代码:

代码语言:javascript
复制
#include <iostream>

constexpr uint64_t epochdelta = 2208988800L; // number of seconds between 1900 and 1970

int main()
{
    uint64_t num= 15704244410975025152ULL;

    uint32_t seconds  = (uint32_t)(num >> 32);


    std::cout << seconds << " seconds since 1900"  << std::endl;
    std::cout << seconds - epochdelta << " seconds since 1970" << std::endl;
    return 0;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33770024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档