使用C语言获取当前时间,我们通常使用
system("date/t");
和
system("time/t");
(注意这里不是反斜杠)
来直接打印当前时间
在win系统中,按windows+r,输入cmd调出命令行
直接输入 date/t 效果是一样的
但这种方法只能将当前时间打印出来
无法将其作为字符串保存下来
这里推荐一种方法
char date[20]="\0";
void GetTime()
{
//需要使用头文件 time.h
//这里定义一个指针变量
time_t timep;
struct tm* p;
time(&timep);
p = gmtime(&timep);
int year, month, day, hour, min, sec;
year = p->tm_year + 1900;
month = p->tm_mon + 1;
day = p->tm_mday;
hour = p->tm_hour + 8;
min = p->tm_min;
sec = p->tm_sec;
//使用sprintf整合字符串
sprintf(date, "%d-%d-%d %d:%d:%d", year, month, day, hour, min, sec);
}
需要注意的是,Unix时间计算从1900年起,所以年份要加上1900
月份是0-11月,所以要+1
由于获取的是格林威治时间,与中国差八个时区
所以要+8