linux下用time(NULL)函数和localtime()获取当前时间的方法
time();函数
函数原型:time_ttime(time_t*timer)
函数用途:得到机器的日历时间或者设置日历时间
头文件:time.h
输入参数:timer=NULL时,得到机器日历时间,=时间数值时用于设置日历时间;
time_t是一个long类型
/*time-获取计算机系统当前的日历时间(CalenderTime) *处理日期时间的函数都是以本函数的返回值为基础进行运算 * *函数原型: *#include* *time_ttime(time_t*calptr); * *返回值: *成功:秒数,从1970-1-1,00:00:00 * *使用: *time_tnow; * *time(&now);//==now=time(NULL); */
localtime();函数
函数原型:structtm*localtime(consttime_t*timer)
函数用途:返回一个以tm结构表达的机器时间信息
头文件:time.h
输入参数:timer:使用time()函数获得的机器时间;
/* *localtime-将时间数值变换成本地时间,考虑到本地时区和夏令时标志 * *函数声明: *#include* *structtm*localtime(consttime_t*timer); * */
//结构tm的定义为: structtm { inttm_sec;/*Seconds:0-59(K&Rsays0-61?)*/ inttm_min;/*Minutes:0-59*/ inttm_hour;/*Hourssincemidnight:0-23*/ inttm_mday;/*Dayofthemonth:1-31*/ inttm_mon;/*Months*since*january:0-11*/ inttm_year;/*Yearssince1900*/ inttm_wday;/*DayssinceSunday(0-6)*/ inttm_yday;/*DayssinceJan.1:0-365*/ inttm_isdst;/*+1DaylightSavingsTime,0NoDST, *-1don'tknow*/ };
既然time_t实际上是长整型,到未来的某一天,从一个时间点(一般是1970年1月1日0时0分0秒)到那时的秒数(即日历时间)超出了长整形所能表示的数的范围怎么办?对time_t数据类型的值来说,它所表示的时间不能晚于2038年1月18日19时14分07秒。为了能够表示更久远的时间,一些编译器厂商引入了64位甚至更长的整形数来保存日历时间。比如微软在VisualC++中采用了__time64_t数据类型来保存日历时间,并通过_time64()函数来获得日历时间(而不是通过使用32位字的time()函数),这样就可以通过该数据类型保存3001年1月1日0时0分0秒(不包括该时间点)之前的时间。
/* *time(); *@author李政<1244109467@qq.com> */ #include#include intmain(intargc,char*argv[]) { structtm*tp; time_tt=time(NULL); tp=localtime(&t); printf("%d/%d/%d\n",tp->tm_mon+1,tp->tm_mday,tp->tm_year+1900); printf("%d:%d:%d\n",tp->tm_hour,tp->tm_min,tp->tm_sec); return0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。