必威体育Betway必威体育官网
当前位置:首页 > IT技术

localtime、localtime_s、localtime_r的使用

时间:2019-08-08 12:12:11来源:IT技术作者:seo实验室小编阅读:65次「手机版」
 

localtime

a.localtime用来获取系统时间,精度为秒

#include <stdio.h>
#include <time.h>
 
int main()
{
    time_t time_seconds = time(0);
    struct tm* ptm = localtime(&time_seconds);
 
    printf("%04d-%02d-%02d %02d:%02d:%02d\n", ptm->tm_year + 1900, ptm->tm_mon + 1,
        ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
}

函数原型为struct tm *localtime(const time_t * timep)

需要包含头文件:#include <time.h>

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

b.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 ptm;
    localtime_r(&time_seconds, &ptm);
 
    printf("%04d-%02d-%02d %02d:%02d:%02d\n", ptm.tm_year + 1900, ptm.tm_mon + 1,
        ptm.tm_mday, ptm.tm_hour, ptm.tm_min, ptm.tm_sec);
}
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
 
int main()
{
    struct timeval tv;
    struct tm ptm;
    gettimeofday(&tv,NULL);
    localtime_r(&tv.tv_sec, &ptm);
 
    printf("%04d-%02d-%02d %02d:%02d:%02d %06lu\n", ptm.tm_year + 1900, ptm.tm_mon + 1,
        ptm.tm_mday, ptm.tm_hour, ptm.tm_min, ptm.tm_sec,tv.tv_usec);//取微妙级别的
}

c.localtime_s也是用来获取系统时间,运行于windows平台下,与localtime_r只有参数顺序不一样

#include <iOStream>
#include <time.h>
 
int main()
{
	time_t time_seconds = time(0);
	struct tm ptm;
	localtime_s(&ptm,&time_seconds);
 
	printf("%04d-%02d-%02d %02d:%02d:%02d\n", ptm.tm_year + 1900, ptm.tm_mon + 1,
		ptm.tm_mday, ptm.tm_hour, ptm.tm_min, ptm.tm_sec);
}

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读