首页 > 编程知识 正文

shell脚本获取时间,linux编译找不到头文件

时间:2023-05-04 23:28:10 阅读:172012 作者:4431

实例详细求解Linux下C获取时间函数的代码。

一.时间

头文件:

#包含

原型:

time_ttime(time_t*t ) )。

time_t的定义:

typedef __darwin_time_t time_t;

typedef long __darwin_time_t;

返回值:编码还原时间(utc )时间1970年1月1日00时00分00秒(也称为Linux系统上的Epoch时间)当前时间之前的秒数

例: 1

#包含

#包含

int main () )

{

time_t seconds;

seconds=time(null;

printf (从1970-01-01开始的小时数=%LD(n ),seconds/3600 );

返回(0;

}

二. localtime localtime_r

头文件:

#包含

原型:

struct TM * local time (const time _ t * timep ) ) )。

原型:

struct TM * local time _ r (const time _ t * timep,struct tm *result );

结构体tm

struct tm {

int tm_sec; /*seconds(0-60 ) /

int tm_min; /*minutes(0-59 ) ) /

int tm_hour; /*Hours(0-23 ) /

int tm_mday; /*dayofthemonth(1-31 ) ) /

int tm_mon; /*month(0-11 ) /

int tm_year; /* Year - 1900 */

int tm_wday; /*Dayoftheweek(0-6,Sunday=0) ) /

int tm_yday;/*日期年(0- 365,1 Jan=0) ) /

int tm_isdst; /* Daylight saving time */

/*夏时制标识符,在实施夏时制时,tm_isdst为正。 不实施夏令时时,tm_isdst为0; 如果不知道情况,tm_isdst )为负。 */

(;

localtime与localtime_r的区别

localtime并不是可以重新输入localtime_r

示例2 :

#包含

#包含

#包含

#包含

intmain(intargc,char *argv[] ) ) ) ) ) ) ) ) ) int main ) ) ) int main ) ) ) int argc,char *argv[] ) ) ) ) ) ) ) int

{

time_ttnow=time(null;

time_t tEnd=tNow 1800;

//注意以下两行之间的差异

sructTM*PTM=localtime(tnow );

sructTM*ptmend=localtime(tend );

char szTmp[50]={0};

strftime(SZtmp,50,' %H:%M:%S ',ptm );

char szEnd[50]={0};

strftime(szend,50,' %H:%M:%S ',ptmEnd );

printf('%s/n ',szTmp );

printf('%s/n ',szEnd );

返回0;

}

最后得出的结果是:

20:30:32

20:30:32

示例3 :

#包含

#包含

#包含

#包含

intmain(intargc,char *argv[] ) ) ) ) ) ) ) ) ) int main ) ) ) int main ) ) ) int argc,char *argv[] ) ) ) ) ) ) ) int

{

time_ttnow=time(null;

time_t tEnd=tNow 1800;

struct tm ptm={ 0 };

struct tm ptmEnd={ 0 };

localtime_r(tnow,ptm );

localtime_r(tend,ptmEnd;

char szTmp[50]={0};

strftime(SZtmp,50,' %H:%M:%S ',ptm );

char szEnd[50]={0};

strftime(szend,50,' %H:%M:%S ',ptmEnd );

printf(%s(n ),szTmp );

printf(%s(n ),szEnd );

返回0;

}

最后得出的结果是:

20:03:21

20:33:21

三. gettimeofday

头文件:

#包含

原型:

int gettime of day (struct timeval * TV,struct timezone *tz ) )。

tv :保存获取时间结果的结构

struct timeval{

long int tv_sec; //秒数

long int tv_usec; //微秒数

}

tz :为了保存时区的结果

struct timezone{

int tz_minuteswest; /*格林威治标准时间对西方的时差*

int tz_dsttime; /*DST时间的修正方式*

}

返回值:正常返回0,失败返回-1,错误代码保存在errno中

四. mktime

头文件:

#包含

原型:

time_tMkTime(structTM*TM ) )。

返回值:自1970年1月1日以来持续时间的秒数。 如果发生错误,则返回-1。

示例4 :

#包含

#包含

入主(void ) )。

{

time_t timep;

struct tm* p;

时间(timep );

printf(time ) ) :%d(n ),timep;

p=localtime(timep );

timep=MkTime(p;

printf(time )-local time (mktime ) ) :%dn ),timep );

返回0;

}

输出:

时间(:1541246772

time ()-local time (mktime ) ) :1541246772

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。