获取当前时间---使用标准C

时间:2022-01-16 14:15:08

大家可能在开发过程中经常会遇到获取当前系统时间的问题。那么除了MFC中的CTime类外,有没有其他的方法呢? 答案是肯定的。

很多C/C++的初学者在学习这门语言的时候,经常是只注意其语法,而其库函数却知道的很少。有的知道一些,但是却很少应用。笔者在这里建议大家,经常去看看标准C库,标准C++库。如果能在开发过程中经常使用上这些库函数,将会使我们的开发过程变得简单不少。

那么标准C中如何获取本地时间呢? 在这之前请你去找一下time.h这个头文件,或许你会在里边找到一些你以前不知道的东西。

在time.h中定义了一个时间的结构体tm。这个结构体定义如下

#ifndef _TM_DEFINED
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()为负。*/
        };
#define _TM_DEFINED
#endif

 

请注意看后边的注释哦。

另外有两个函数

struct tm * gmtime(const time_t *timer);                                          
struct tm * localtime(const time_t * timer);

前者用来获取UTC时间,后者用来获取本地时间。那么下边的事情就不用我再说了吧。

最后提醒各位,经常看看库函数喔。