附录12-time.h的常用方法

目录

1  数据类型

1.1  time_t

1.2  tm

1.3  clock_t

2  相关知识

3  获取从1970年1月1日以来的UTC秒数 time()

4  获取本时区时间字符串 ctime()

5  获取GMT时间的tm gmttime()

6  获取本地时间的tm localtime()

7  记录当前毫秒数 clock()

8  将表示本地时间的tm转换为time_t mktime()

9  将tm转换为字符串形式 asctime()

10  两个time_t的差值 difftime()

11  将tm转换为字符串 strftime()


1  数据类型

1.1  time_t

time_t可以视作为长整型(long),导入time.h库会自动定义这个变量名

1.2  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为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/

};

我们通常可以用下面这组字符串打印出tm

printf("%04d-%02d-%02d %02d:%02d:%02d\n",local_time->tm_year + 1900, local_time->tm_mon + 1, local_time->tm_mday, local_time->tm_hour, local_time->tm_min, local_time->tm_sec);

打印后的格式是这样的

1.3  clock_t

clock_t可以视作为长整型(long),导入time.h库会自动定义这个变量名

2  相关知识

  • GMT与UTC时间类似
  • GMT与中国差8个时区,所以时间也会差8个小时

3  获取从1970年1月1日以来的UTC秒数 time()

4  获取本时区时间字符串 ctime()

5  获取GMT时间的tm gmttime()

gmttime()的返回值是tm,我们可以把tm格式化成我们想看的格式

GMT是0时区,中国是东8区,所以会相差8个小时

6  获取本地时间的tm localtime()

7  记录当前毫秒数 clock()

运行后我等待5秒左右,然后睡3秒,之后会显示从开始到end_time的clock()运行了3002毫秒

8  将表示本地时间的tm转换为time_t mktime()

9  将tm转换为字符串形式 asctime()

10  两个time_t的差值 difftime()

这里你直接相减效果也差不多

11  将tm转换为字符串 strftime()

strftime()的第一个参数是存在哪个变量中

第二个参数是变量的最大长度,一般我们使用sizeof(变量名)就行了

第三个参数是要格式化成什么样子的字符串

第四个参数是时间的tm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值