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都有