C++获取时间戳(Linux)

Webrtc 信令服务器通信,需要实现samplewebrtc信令服务器中sid参数,而sid 参数是一个毫秒时间戳。web端是js很好拿到,而另一端是用C++实现的耶,C++获取毫秒时间戳(距离19700101000的毫秒数),没有做过,这里记录一波。

环境:Linux C++11

秒时间戳 使用了time.h
毫秒时间戳使用了 c++11 标准库: std::chrono

#include <time.h>
#include <chrono>  
#include <iostream>   // std::cout

std::time_t getTimeStamp()
{
    std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds> tp = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());//获取当前时间点
    std::time_t timestamp =  tp.time_since_epoch().count(); //计算距离1970-1-1,00:00的时间长度
    return timestamp;
}

int main(){
    time_t timestamp;
    std::cout << time(&timestamp) << std::endl;//秒级时间戳
    timestamp =  getTimeStamp();
    std::cout << timestamp << std::endl;//毫秒级时间戳
}


编译运行:

g++ -std=c++11 main.cpp -o test

./test

1562566489
1562566489423

PS: window运行存在问题,好像是windows中system_clock是100纳秒,可以参考下面的参考链接的内容自己做出相应修改,

参考链接;
https://blog.csdn.net/qq_31175231/article/details/77923212

上一篇:C++ 计算程序的运行时间


下一篇:C++中头文件简介(stdio.h & chrono)