gpt4 book ai didi

android - 潜望镜时间戳

转载 作者:搜寻专家 更新时间:2023-10-31 02:19:13 25 4
gpt4 key购买 nike

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

以下是这些时间戳的 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

最佳答案

前两个看起来是Network Time Protocol时间戳。第三个更正确地称为 POSIX 时间戳。

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

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

减去 2208988800,the number of seconds between 1900 and 1970 , 从 3656429334 给出自 Posix 时代以来的 1447440534 秒,即格林威治标准时间 2015 年 11 月 13 日星期五 18:48:54

快速破解代码:

#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;
}

关于android - 潜望镜时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33770024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com