欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《c/c++ 获取时间戳》——精确到毫秒

程序员文章站 2022-05-02 15:13:25
...

timeb.h和time.h

这两个是C++的标准头文件,在Microsoft Visual Studio/VC98/Include中,表示了C++对时间的支持能力。

time.h中申明了tm结构体,来对时间年月日、时分秒的支持,值得注意的是,它不支持毫秒级的计时方式。
可以用函数time(NULL)函数获取当前时间戳。

timeb.h是对time.h的补充,申明了timeb结构体,用来支持毫秒级的计时方式。
可以用ftime(timeb&)获取当前时间戳。

两个头文件的都定义了typedef long time_t;

time_t和tm可以相互转换,然而C++并没有提供从time_t到tm的转换,可以调用ACE的转换函数ACE_OS::localtime_r (const time_t *t, struct tm *res)来实现。

timeb.time实际上就是time_t;timeb.millitm表示毫秒。

timeb.h获取毫秒的代码

#include <iostream>
#include <sys/timeb.h>
using namespace std;

int main()
{
	timeb t;
	ftime(&t);//获取毫秒
	cout << t.time << "  " << t.millitm << endl;//秒级时间戳
	cout << t.time * 1000 + t.millitm << endl;//某个时间戳下走过的毫秒数,可用来求时间复杂度
	cout << t.time * 1000 + t.millitm << endl;//13位毫秒的时间戳
}

timeb是一个结构体,下面是源码

    struct timeb
    {
        time_t         time;
        unsigned short millitm;
        short          timezone;
        short          dstflag;
    };

《c/c++ 获取时间戳》——精确到毫秒

相关标签: 时间戳 c++