clock_t clock(void),对比python的clock()

返回程序执行的时间,clock_t的实际类型是long

#include<Windows.h>
Sleep(1000);      //1000毫秒=1秒
cout << clock() << endl;
得出1001

time_t time(time_t *timer)

返回的是时间戳,time_t的实际类型是__int64,参数是time_t的指针,调用这个函数只要time(NULL),返回类似:1471493895

 

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的秒数,每毫秒都在变,时间戳可以用来生成随机数

char* ctime(time_t *ptime)  对比python的ctime(second)

 时间戳转字符串

time_t atime = time(nullptr);        //返回当前时间戳
time_t *ptime = &atime;          //当前时间戳的指针
cout << ctime(ptime) << endl;
得出:Thu Aug 18 13:02:34 2016

struct tm *localtime(time_p *ptime)

本地时间的时间戳转换为tm时间结构

struct tm *gmtime(time_p *ptime)   

格林当前时间的时间戳转换为tm时间结构

//tm结构的定义
struct
tm { int tm_sec; // seconds after the minute - [0, 60] including leap second int tm_min; // minutes after the hour - [0, 59] int tm_hour; // hours since midnight - [0, 23] int tm_mday; // day of the month - [1, 31] int tm_mon; // months since January - [0, 11] int tm_year; // years since 1900 int tm_wday; // days since Sunday - [0, 6] int tm_yday; // days since January 1 - [0, 365] int tm_isdst; // daylight savings time flag };

 

tm* ptm = localtime(ptime);       //转换为时间结构
cout << ptm->tm_year+1900<<"-"<< ptm->tm_mon+1<<"-"<<ptm->tm_mday<<" "<<ptm->tm_hour<<":"<<ptm->tm_min<<":"<<ptm->tm_sec << endl;
得出:2016-8-18 13:18:5

 

 上面得出来的效果也可以用strftime来做

char* strftime(char *_Buffer,size_t Max,char *format, tm *_TM)

时间结构转换成格式化时间,参数一是储存结果的字符串,参数二位这个字符串的大小,参数三是时间格式,参数四是时间格式

时间格式都是通用的,只要记住几个基本的,就可以类推

char timestr[80];
strftime(timestr, 80, "%Y-%m-%d %Y:%M:%S", ptm);
cout<<timestr<<endl;
得出:2016-08-15 2016:00:59

 

char *asctime(tm *_TM)

将时间结构转换成字符串

time_t atime = time(nullptr);        //返回当前时间戳
time_t *ptime = &atime;          //当前时间戳的指针
tm* ptm = localtime(ptime);       //转换为时间结构
cout <<asctime(ptm)<< endl;      //时间结构转换成字符串
得出Mon Aug 15 16:54:21 2016

 

想要获取时间,上面几个函数就足够了,python都有

 

posted on 2016-08-19 22:26  euewrqe  阅读(421)  评论(0编辑  收藏  举报