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