linux c获得时间和设置时间 函数
#include<time.h> #include <sys/time.h>#include<stdio.h>//gcc -o systime systime.cint getSystemTime() { time_t timer; struct tm t_tm; time(
·
#include<time.h>
#include <sys/time.h>
#include<stdio.h>
//gcc -o systime systime.c
int getSystemTime()
{
time_t timer;
struct tm t_tm;
time(&timer);
localtime_r(&timer, &t_tm);
printf("today is %4d/%02d/%02d %02d:%02d:%02d\r\n", t_tm.tm_year+1900,
t_tm.tm_mon+1, t_tm.tm_mday, t_tm.tm_hour, t_tm.tm_min, t_tm.tm_sec);
return 0;
}
/************************************************
设置操作系统时间
参数:*dt数据格式为"2006-4-20 20:30:30"
调用方法:
char *pt="2006-4-20 20:30:30";
SetSystemTime(pt);
**************************************************/
int SetSystemTime(void)
{
struct tm rtc_time;
struct tm _tm;
struct timeval tv;
time_t timep;
char dt[128];
printf("Input date, format: 2006-4-20 20:30:30\r\n");
fgets(dt, 128, stdin);
printf("Your input is %s\r\n", dt);
sscanf(dt, "%d-%d-%d %d:%d:%d", &rtc_time.tm_year,
&rtc_time.tm_mon, &rtc_time.tm_mday,&rtc_time.tm_hour,
&rtc_time.tm_min, &rtc_time.tm_sec);
_tm.tm_sec = rtc_time.tm_sec;
_tm.tm_min = rtc_time.tm_min;
_tm.tm_hour = rtc_time.tm_hour;
_tm.tm_mday = rtc_time.tm_mday;
_tm.tm_mon = rtc_time.tm_mon - 1;
_tm.tm_year = rtc_time.tm_year - 1900;
timep = mktime(&_tm);
tv.tv_sec = timep;
tv.tv_usec = 0;
if(settimeofday (&tv, (struct timezone *) 0) < 0)
{
printf("Set system datatime error!/n");
return -1;
}
return 0;
}
void Usage(void)
{
printf(" -h, help\n"
" -s, set systime\n"
" -g, get systiem\n");
}
int main(int argc, char *argv[])
{
int s32Ret;
if (argc < 2)
{
Usage();
return -1;
}
int count;
for(count = 1; count < argc; count++)
{
if(!strcmp(argv[count], "-h"))
{
Usage();
return 0;
}
else if(!strcmp(argv[count], "-s"))
{
s32Ret = SetSystemTime();
if(0 == s32Ret)
{
printf("Set system datatime OK!\r\n");
return 0;
}
else
{
return 0;
}
}
else if(!strcmp(argv[count], "-g"))
{
getSystemTime();
}
}
return 0;
}
#include <sys/time.h>
#include<stdio.h>
//gcc -o systime systime.c
int getSystemTime()
{
time_t timer;
struct tm t_tm;
time(&timer);
localtime_r(&timer, &t_tm);
printf("today is %4d/%02d/%02d %02d:%02d:%02d\r\n", t_tm.tm_year+1900,
t_tm.tm_mon+1, t_tm.tm_mday, t_tm.tm_hour, t_tm.tm_min, t_tm.tm_sec);
return 0;
}
/************************************************
设置操作系统时间
参数:*dt数据格式为"2006-4-20 20:30:30"
调用方法:
char *pt="2006-4-20 20:30:30";
SetSystemTime(pt);
**************************************************/
int SetSystemTime(void)
{
struct tm rtc_time;
struct tm _tm;
struct timeval tv;
time_t timep;
char dt[128];
printf("Input date, format: 2006-4-20 20:30:30\r\n");
fgets(dt, 128, stdin);
printf("Your input is %s\r\n", dt);
sscanf(dt, "%d-%d-%d %d:%d:%d", &rtc_time.tm_year,
&rtc_time.tm_mon, &rtc_time.tm_mday,&rtc_time.tm_hour,
&rtc_time.tm_min, &rtc_time.tm_sec);
_tm.tm_sec = rtc_time.tm_sec;
_tm.tm_min = rtc_time.tm_min;
_tm.tm_hour = rtc_time.tm_hour;
_tm.tm_mday = rtc_time.tm_mday;
_tm.tm_mon = rtc_time.tm_mon - 1;
_tm.tm_year = rtc_time.tm_year - 1900;
timep = mktime(&_tm);
tv.tv_sec = timep;
tv.tv_usec = 0;
if(settimeofday (&tv, (struct timezone *) 0) < 0)
{
printf("Set system datatime error!/n");
return -1;
}
return 0;
}
void Usage(void)
{
printf(" -h, help\n"
" -s, set systime\n"
" -g, get systiem\n");
}
int main(int argc, char *argv[])
{
int s32Ret;
if (argc < 2)
{
Usage();
return -1;
}
int count;
for(count = 1; count < argc; count++)
{
if(!strcmp(argv[count], "-h"))
{
Usage();
return 0;
}
else if(!strcmp(argv[count], "-s"))
{
s32Ret = SetSystemTime();
if(0 == s32Ret)
{
printf("Set system datatime OK!\r\n");
return 0;
}
else
{
return 0;
}
}
else if(!strcmp(argv[count], "-g"))
{
getSystemTime();
}
}
return 0;
}
更多推荐
已为社区贡献1条内容
所有评论(0)