localtime_r学习

转自:https://blog.csdn.net/u010087712/article/details/50731222

1.localtime_r 

 用来获取系统时间,运行于linux平台下。

 函数原型:

struct tm *localtime_r(const time_t *timep, struct tm *result);

例子:

#include <stdio.h>
#include <time.h>//需要包含该头文件
 
int main()
{
    time_t time_seconds = time(0);// 秒级时间戳
    struct tm now_time;
    localtime_r(&time_seconds, &now_time);
 
    printf("%d-%d-%d %d:%d:%d\n", now_time.tm_year + 1900, now_time.tm_mon + 1,
        now_time.tm_mday, now_time.tm_hour, now_time.tm_min, now_time.tm_sec);
      cout<<"\n"<<now_time.tm_sec<<" "<<now_time.tm_min<<" "<<now_time.tm_hour<<" "<<now_time.tm_mday<<" "<<now_time.tm_mon<<" "<<now_time.tm_year<<" "<<now_time.tm_wday<<" "<<now_time.tm_yday<<" "<<now_time.tm_isdst;
}

//输出结果:
2024-1-6 17:1:58

58 1 17 6  0  124 6   5  0
秒 分 时 日 月  年 星期 天

两个参数,第一个是time_t(long int类型),第二个是一个tm类型的指针。

tm数据结构:

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

  

posted @ 2022-11-03 23:46  lypbendlf  阅读(654)  评论(0编辑  收藏  举报