linux 获取系统时间

通过以下函数可以统计设备开机时间,关机时间,离线时间,距离1970.1.0.0.0的秒数。统计设备的运行状况!

1.获取系统当前时间距1970.1.0.0.0的秒数。通过获取的秒数方便计算嵌入式设备的离线时间。

#include<time.h>

void main(){

long runEndTime=0;

time_t timep;

runendTime=time(&timep);

printf("time() : %ld \n",runendTime);

}

2.

// GetDate - 获取当前系统日期
/**
 *  函数名称:GetDate
 *  功能描述:取当前系统日期
 *
 *  输出参数:char * psDate  - 系统日期,格式为yyymmdd
 *  返回结果:0 -> 成功
 */
int 
GetDate(char * psDate){
    time_t nSeconds;
    struct tm * pTM;
    
    time(&nSeconds); // 同 nSeconds = time(NULL);
    pTM = localtime(&nSeconds);
    
    /* 系统日期,格式:YYYMMDD */
    sprintf(psDate,"%04d-%02d-%02d", 
            pTM->tm_year + 1900, pTM->tm_mon + 1, pTM->tm_mday);
    
    return 0;
}

3.

// GetTime  - 获取当前系统时间
/**
 *  函数名称:GetTime
 *  功能描述:取当前系统时间
 *
 *  输出参数:char * psTime -- 系统时间,格式为HHMMSS
 *  返回结果:0 -> 成功
 */
int 
GetTime(char * psTime) {
    time_t nSeconds;
    struct tm * pTM;
    
    time(&nSeconds);
    pTM = localtime(&nSeconds);
    
    /* 系统时间,格式: HHMMSS */
    sprintf(psTime, "%02d:%02d:%02d",
            pTM->tm_hour, pTM->tm_min, pTM->tm_sec);
           
    return 0;       
}

4.

// GetDateTime - 取当前系统日期和时间
/**
 *  函数名称:GetDateTime
 *  功能描述:取当前系统日期和时间
 *
 *  输出参数:char * psDateTime -- 系统日期时间,格式为yyymmddHHMMSS
 *  返回结果:0 -> 成功
 */
int 
GetDateTime(char * psDateTime) {
    time_t nSeconds;
    struct tm * pTM;
    
    time(&nSeconds);
    pTM = localtime(&nSeconds);

    /* 系统日期和时间,格式: yyyymmddHHMMSS */
    sprintf(psDateTime, "%04d-%02d-%02d/%02d:%02d:%02d",
            pTM->tm_year + 1900, pTM->tm_mon + 1, pTM->tm_mday,
            pTM->tm_hour, pTM->tm_min, pTM->tm_sec);
            
    return 0;
}

5.

//get system work time
void getSysTime(char *Runtime1){
 struct sysinfo info;
    char run_time[128];
    if (sysinfo(&info)) {
        fprintf(stderr, "Failed to get sysinfo, errno:%u, reason:%s\n",errno, strerror(errno));
        exit(0);
    }
    long timenum=info.uptime;
    printf("yun xing miaoshu :%ld\n",timenum);
    int runday=timenum/86400;
    int runhour=(timenum%86400)/3600;
    int runmin=(timenum%3600)/60;
    int runsec=timenum%60;
    bzero(run_time, 128);
    sprintf(Runtime1,"%d-%d-%d-%d",runday,runhour,runmin,runsec);
    

}

猜你喜欢

转载自blog.csdn.net/weixin_42627035/article/details/84557090
今日推荐