c语言获取当前时间

首先介绍两个函数:

(1) int gettimeofday(struct timeval*tv, struct timezone *tz)

所属头文件:   <sys/time.h>

其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果:

    struct timezone{
        int tz_minuteswest;/*格林威治时间往西方的时差*/
        int tz_dsttime;/*DST 时间的修正方式*/
    };

    timezone 参数若不使用则传入NULL即可。
   

而结构体timeval的定义为:

    struct timeval{
        long int tv_sec; // 秒数
        long int tv_usec; // 微秒数
    };

其返回值是从1970-1-1日到现在的的时间,可以精确到微妙级。

(2)struct tm *localtime_r(const time_t *timep, struct tm *result);(可重入)

所属头文件 <time.h>

其中result是保存转换时间结果的结构体

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()为负。*/

 

实例:

#include<sys/time.h>
#include<stdio.h>
#include<time.h>
#include<stdint.h>

int main()
{
        struct timeval tv;
        gettimeofday(&tv,NULL);//获取1970-1-1到现在的时间结果保存到tv中
        uint64_t sec=tv.tv_sec;
        uint64_t min=tv.tv_sec/60;
        struct tm cur_tm;//保存转换后的时间结果
        localtime_r((time_t*)&sec,&cur_tm);
        char cur_time[20];
        snprintf(cur_time,20,"%d-%02d-%02d %02d:%02d:%02d",cur_tm.tm_year+1900,cur_tm.tm_mon+1,cur_tm.tm_mday,cur_tm.tm_hour,cur_tm.tm_min,cur_tm.tm_sec);
        printf("current time is %s\n",cur_time);//打印当前时间

}

 

结果:

谢谢阅读,欢迎指出错误!!

  • 18
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值