发布日期:2015-12-31 11:39 来源: 标签: 编程语言 C教程 C语言时间函数 C语言时间函数总结
本章我们主要学习C语言时间函数,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
首先搞清楚两个概念:
1、日历时间(Calendar Time)是通过time_t数据类型来表示的,用time_t表示的时间(日历时间)是从一个时间点(例如:1970年1月1日0时0分0秒)到此时的秒数。在time.h中,我们也可以看到time_t是一个长整型数。
2、在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:
  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为正。linuxidc.com">www.linuxidc.com 不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
  };
所以 现在详解以下几个函数:
1、asctime(将时间和日期以字符串格式表示)
  char * asctime(const struct tm * timeptr):
函数说明
asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为:“Wed Jun 30 21:49:08 1993\n”
返回值
若再调用相关的时间日期函数,此字符串可能会被破坏。此函数与ctime不同处在于传入的参数是不同的结构。
2、char *ctime(const time_t *timep);
(将时间和日期以字符串格式表示):
函数说明:将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。
3、int gettimeofday(struct timeval * tv , struct timezone * tz ):
函数说明:gettimeofday()会把目前的时间有tv所指的结构返回,当地时区的信息则放到tz结构中。
  timeval结构:
  struct timeval{
  long tv_sec; /*秒*/
  long tv_usec; /*微秒*/
  };
  timezone结构:
  struct timezone{
  int tz_minuteswest; /*和Greenwich 时间差了多少分钟*/
  int tz_dsttime; /*日光节约时间的状态*/
  };
4、struct tm*gmtime(const time_t*timep);
函数说明:
gmtime()将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,www.linuxidc.com 然后将结果由结构tm返回。
5、struct tm *localtime(const time_t * timep);
函数说明:将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。此函数返回的时间日期已经转换成当地时区。
6、mktime(将时间结构数据转换成经过的秒数)
time_t mktime(strcut tm * timeptr);
函数说明:mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。
7、settimeofday(设置目前时间)
int settimeofday ( const struct timeval *tv,const struct timezone *tz);
函数说明:settimeofday()会把目前时间设成由tv所指的结构信息,当地时区信息则设成tz所指的结构。详细的说明请参考gettimeofday()。注意,只有root权限才能使用此函数修改时间。
8、time(取得目前的时间)
time_t time(time_t *t);
函数说明此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值存到t指针所指的内存

相关评论

专题信息
    C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。