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

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

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章