我们先来看一段获取本地时间的代码:
#pragma warning(disable: 4996)
#include <time.h>
time_t curtime = time(0);
tm tim = *localtime(&curtime);
cout << tim.tm_year + 1900 << "年"
<< tim.tm_mon + 1 << "月"
<< tim.tm_mday << "日" << " "
<< tim.tm_hour << ":"
<< tim.tm_min << ":"
<< tim.tm_sec << "\t";
Time()获取当前日历时间(从1899年12月31日0时0分0秒至今),
tm * localtime(const time_t * timer)将日历时间转换为本地时间,
还可以用tm * gmtime(const time_t *timer)将日历时间转换为世界标准时间,
而tm结构的定义如下:
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
而输出方式有示例的输出结构体对象中的各个域,以及如下两种:
char * asctime(const struct tm * timeptr);
char * ctime(const time_t *timer);
asctime()的使用方式同示例,将tm结构对象的各个域填充到时间字符串相应位置
time_t curtime = time(NULL);
tm * tim = localtime(&curtime);
cout << asctime(tim);
而ctime()则是先将日历时间转换为本地时间,再生成格式字符串
time_t curtime = time(NULL);
cout << ctime(&curtime);
我们还可以使用time_t mktime(struct tm * timeptr)函数将用tm结构表示的时间转化为日历时间
struct tm tim;
time_t curtime;
tim.tm_year = 1998 - 1900;
tim.tm_mon = 5;
tim.tm_mday = 27;
tim.tm_hour = 0;
tim.tm_min = 0;
tim.tm_sec = 1;
tim.tm_isdst = 0;
curtime = mktime(&tim);
cout << ctime(&curtime);
除此之外还有自定义时间输出格式,截取时间段等操作可自行拓展