您好,欢迎来到花图问答。
搜索
您的当前位置:首页c语言时间汇总

c语言时间汇总

来源:花图问答
  • 时间戳

时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数。它也被称为 Unix 时间戳(Unix Timestamp)。
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。
Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

  • 获取当前时间戳 time()

time() 是指返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数的函数。

部分代码
time_t tt;
time(&tt);
结果
  • 将时间戳转换为struct tm 结构体
    先看看你struct tm 的定义
struct tm {
        int tm_sec;     /* seconds after the minute - [0,59] */
        int tm_min;     /* minutes after the hour - [0,59] */
        int tm_hour;    /* hours since midnight - [0,23] */
        int tm_mday;    /* day of the month - [1,31] */
        int tm_mon;     /* months since January - [0,11] */
        int tm_year;    /* years since 1900 */
        int tm_wday;    /* days since Sunday - [0,6] */
        int tm_yday;    /* days since January 1 - [0,365] */
        int tm_isdst;   /* daylight savings time flag */
        };
我们可以调用localtime(),gmtime()这两个函数转换

localtime是 把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间,而gmtime函数转换后的时间没有经过时区变换,是UTC时间 。

gmtime是把日期和时间转换为格林威治(GMT)时间的函数。将参数time 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。

  • 将struct tm 结构体转换为时间戳 mktime()

mktime()这个函数主要是将struct tm 结构体转换为时间戳,但是需要注意的是,这个函数转换的是localtime得到的时间戳,如果是gmtime的时间戳,计算的时间会差所在地的时区。比如,按照北京时间来看的话,计算出来的是上午8点,实际是下午4点。差8个小时,因为北京是东8区。

  • 将时间戳转换为字符串ctime()

表示的时间是基于格林威治标准时间(GMT)的。

  • 将struct tm 转换为字符串
    1) 调用函数asctime。
    2)调用函数sprintf()自由的拼接。
sprintf_s(szDateTime, "%04d/%02d/%02d %02d:%02d:%02d",t->tm_year + 1900,t->tm_mon + 1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

热门图文

Copyright © 2019-2025 huatuowenda.com 版权所有 湘ICP备2023022495号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务