相关知识:
Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8,美国是UTC-5。
time_t 表示时间值的算术类型(属于长整型)
time()函数
在time.h中的声明:
time_t time(time_t*t)
time()函数的作用是获取以秒为单位的、以格林威治时间1970年1月1日00:00:00开始计时的当前时间(其实就是从1970年1月1日00:00:00到当前时间的秒数)作为time()函数的返回值,并把它存在t所指的区域中(在不需要储存时通常为NULL)
调用方法:
1.
time_t now;
now=time(NULL)
2.
time_t now;
time(&now)
两种用法的作用相同
#include<stdio.h>
#include<time.h>
int main()
{
time_t t;//定义t为time_t类型
t=time(NULL);//或者t=time(&t);//获取当前时间
printf("now time is %lld\n",t);
return 0;
}
//运行结果:now time is 1615017700(这是我运行时的时间)
这种时间看起来很不舒服,要想把时间的秒数转化我们生活常见的时间格式就就要用到localtime()函数分解时间。
localtime()函数
在time.h中的声明
struct tm*localtime(const time_t*t)
上面代码中的struct tm 时表示时间的结构体,用来储存一个日历时间的各个成分,被称为时间段。该结构体的定义如下:
struct tm
{
int tm_sec;//从当前这分钟开始经过的秒数[0,61]
int tm_min;//从当前这小时开始经过的分钟数[0,59]
int tm_hour;//自子夜开始经过的小时数[0,23]
int tm_mday;//从本月开始经过的天数[1,31]
int tm_mon;//从今年1月份开始经过的月数[0,11]
int tm_year;//从1900年开始经过的年数
int tm_wday;