时间编程

使用Linux时间编程相关函数,编写程序,通过实现与函数asctime相同功能的函数获取本地时间,以格式字符串方式显示

概念:日历时间,通过time_t数据类型来表示,从一个时间点(通常是1970年1月1日0时0分0秒)到此时的秒数。

格林威治时间:由英国皇家格林尼治天文台提供的标准时间。

本地时间:根据格林威治时间和本地时区计算出的时间。

1、获取当前的系统时间--time

头文件:#include<time.h>

函数原型:time_t time(time_t *timer)

参数说明:timer:timer=NULL时得到系统日历时间,timer等于时间数值时,用于设置日历时间。

返回值:返回日历时间。

2、通过日历时间获得本地时间--localtime

函数原型:struct tm *localtime(const time_t *clock)

参数说明:clock指向日历时间的指针变量。

返回值:返回指向tm结构体的指针。

3、通过日历时间获得格林威治时间---gmtime

函数原型:struct tm *gmtime(long *clock)

参数说明:clock指向日历时间的指针变量

返回值:返回指向tm结构体的指针。

4、转换日期和时间为ASCII码---asctime

函数原型:char *asctime(const struct tm *tblock)

参数说明:tblock记录时间的tm结构

返回值:返回字符串格式:星期,月,日,小时:分:秒,年。

5、把日期和时间转换为字符串---ctime

函数原型:char *ctime(const time_t *time);

参数说明:time指向日历时间的指针变量,该参数应由函数time函数获得。

返回值:返回字符串格式:星期,月,日,小时;分;秒,年

6、取得目前时间-----gettimeofday

函数原型:int gettimeofday(struct timeval *tv,struct timezone *tz);

参数说明:tv当前timeval结构;tz时区结构。

返回值:成功0,失败-1.

7、把日期和时间转换为字符串---settimeofday

函数原型:int settimeofday(const struct timeval *tv,const struct timezone *tz);

参数说明:tv:当前timeval结构;tz:时区结构。

返回值:成功0,失败-1.

 

tm结构体:是C语言中用于表示日期和时间的结构体,

struct tm

{

int tm_sec;//表示秒数,在0-61之间,多出来的2秒是用来处理跳秒问题用的

int tm_min;//表示分数,0-59之间

int tm_hour;//表示时数,0-23之间

int tm_mday;//表示本月第几日,[1,31]之间

int tm_mon;//表示本年第几月[0,11]

int tm_year;//从1900到现在的年数

int tm_wday;//本周第几日,[0-6]之间

int tm_yday;//本年第几日[0,365],闰年有366

int tm_isday;//是否为日光节约时间

};

sprintf---把格式化的数据写入某个字符串

函数原型:int sprintf(char *buffer,const char *format);

返回值:字符串长度(strlen)

注意sprintf输出的数据到字符串buffer中,printf将数据输出到命令行。

获取本地时间,以格式字符串方式显示

总结:通过本实验可以看出,要获得本地时间字符串,一般需要三个步骤:

1、通过time函数获得日历时间

2、通过localtime函数将日历时间转化为本地时间

3、通过asctime函数将本地时间转化为字符串

当然,可以不经过步骤2),直接使用ctime从日历时间获得时间字符串。

 

posted on 2016-06-03 13:49  gary_123  阅读(423)  评论(0编辑  收藏  举报

导航