时间编程相关的API

本文详细介绍了C语言中如何使用time(),localtime(),gmtime()和ctime()函数来获取、转换和表示日历时间,包括structtm结构体在时间处理中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1》time -- 获取日历时间

        日历时间:1970年1月1日距离现在的秒数

        #include <time.h>

        time_t time(time_t *timer): 获取当前的系统时间,并以time_t类型返回。

2》将日历时间转化为本地时间 localtime

        #include <time.h>

        struct tm *localtime(const time_t *timer): 将time_t类型的时间转换为本地时间,并以struct tm结构体返回。

        形参:timep  日历时间  也就是time获取的结果

        返回值:关于时间的结构体

struct tm {

               int tm_sec;    /* 秒 */

               int tm_min;    /* 分 */

               int tm_hour;   /* 时*/

               int tm_mday; /*Day of the month(1-31) */

               int tm_mon;    /* Month (0-11) +1 */

               int tm_year;   /* Year - 1900+1900 */

               int tm_wday;   /* Day of the week (0-6, Sunday = 0) */

               int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */

               int tm_isdst;  /* Daylight saving time */

           };

3》将日历时间转化为格林威治时间 gmtime

        struct tm *gmtime(const time_t *timep);

        形参:timep  日历时间  也就是time获取的结果

        返回值:关于时间的结构体

struct tm {

               int tm_sec;    /* 秒 */

               int tm_min;    /* 分 */

               int tm_hour;   /* 时 和我们差8小时*/

               int tm_mday; /*Day of the month(1-31) */

               int tm_mon;    /* Month (0-11) +1 */

               int tm_year;   /* Year - 1900+1900 */

               int tm_wday;   /* Day of the week (0-6, Sunday = 0) */

               int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */

               int tm_isdst;  /* Daylight saving time */

           };

4》获取时间的字符串 ctime

        char *ctime(const time_t *timep);

        形参:timep  日历时间  也就是time获取的结果

        返回值:关于时间的字符串

#include "stdio.h"
#include "time.h"
int main() 
{
    // 获取当前时间
    time_t current = time(NULL);
    struct tm *p = localtime(&current);
    
    printf("%d-%d-%d ",p->tm_year+1900,p->tm_mon+1,p->tm_mday);
    printf("%d:%d:%d ",p->tm_hour,p->tm_min,p->tm_sec);
    printf("星期%d\n",p->tm_wday);

    // 获取格林威治时间 gmtime
    struct tm *q = gmtime(&current);
    printf("%d-%d-%d ",q->tm_year+1900,q->tm_mon+1,q->tm_mday);
    printf("%d:%d:%d ",q->tm_hour,q->tm_min,q->tm_sec);
    printf("星期%d\n",q->tm_wday);

    //获取时间的字符串 ctime
    char *w = ctime(&current);
    printf("%s",w);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值