1. 程式人生 > >linux 獲取系統時間

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);
    

}