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 @   lypbendlf  阅读(771)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2020-11-03 C++函数值返回拷贝问题+RVO和NRVO【待学习】
点击右上角即可分享
微信分享提示