C语言笔记:标准IO函数 time()、localtime()、gmtime()获取当前系统时间(Linux、windows)
time()函数函数功能:获取从1970年1月1日00:00:00到现在走过的秒数1、time返回的是:格林尼治时间1970年1月1日00:00:00到当前时刻的时长,时长单位是秒。2、time函数原型:time_t time(time_t *tloc);//返回值与参数作用相同,都用来获取时间//time_t:长整形long//1970年1月1日00:00:00到当前时刻的时长,时长单位是秒。3
·
time()函数
函数功能:获取从1970年1月1日00:00:00到现在走过的秒数
1、time返回的是:格林尼治时间1970年1月1日00:00:00到当前时刻的时长,时长单位是秒。
2、time函数原型:
time_t time(time_t *tloc);
//返回值与参数作用相同,都用来获取时间
//time_t:长整形long
//1970年1月1日00:00:00到当前时刻的时长,时长单位是秒。
3、time的两种用法:
time_t t1,t2; //分别声明两种使用方式的赋值对象
t1=time(0); //第一种使用方式
time(&t2); //第二种使用方式
4、time_t既然是长整形,那么必然有它的计时范围,最晚不能超过2038年1月18日19时14分07秒
ctime()函数
函数功能:将time()函数的返回值进行解析,然后返回一串时间字符串
1、函数原型:
char *ctime(const time_t *timep);
2、用法:将time()函数的返回值作为参数传入,用字符型数组接收返回值
常用代码:
tim = time(NULL);//获取时间
char time_buf[100];
time_buf = ctime(tim);//解析
printf("ctime: %s\n",time_buf);
执行结果:
localtime()、gmtime函数
函数功能:将time()函数返回的数值解析成当前日期
1、函数原型
struct tm *localtime(const time_t *timep);
struct tm *gmtime(const time_t *timep);
2、参数:timep:为time()函数的返回值
3、返回值:struct tm
struct tm {
int tm_sec; /* 秒 – 取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
};
实例代码
#include <stdio.h>
#include <time.h>
//time返回的是:格林尼治时间1970年1月1日00:00:00到当前时刻的时长,时长单位是秒。
//localtime() 、gmtime() 解析time
int main()
{
int h, m, s;//时分秒
struct tm *local;//用localtime函数获取时间
time_t t1,t2; //分别声明两种使用方式的赋值对象
t1=time(0); //第一种使用方式
//time(&t2); //第二种使用方式
printf("t1=%ld\n",t1);
/****传统方法解析*****/
s = t1 % 60;
m = (t1 % 3600) / 60;
h = (t1 % (3600 * 24)) / 3600 + 8;
h %= 24;
printf("time: %02d:%02d:%02d\n", h, m, s);
/****localtime()函数解析***/
local=localtime(&t1);//解析t1秒数,保存到结构体loccal
printf("Localtime is: %d年 %d月 %d日 %d:%d:%d\n",local->tm_year+1900,local->tm_mon+1,
local->tm_mday,local->tm_hour,local->tm_min,local->tm_sec);
/****gmtime()函数解析***/
local=gmtime(&t1);
printf("gmtime is: %d年 %d月 %d日 %d:%d:%d\n",local->tm_year+1900,local->tm_mon+1,
local->tm_mday,local->tm_hour+8,local->tm_min,local->tm_sec);
return 0;
}
执行结果:
更多推荐
已为社区贡献1条内容
所有评论(0)