Linux系统下获取、修改时间的方法
程序员文章站
2022-03-08 19:35:10
...
void Get_Systime(void) //获取系统时间
{
time(&timep);
ptm = gmtime(&timep);
stSystemTime.usYear = ptm->tm_year + 1900;
stSystemTime.ucMon = ptm->tm_mon + 1;
stSystemTime.ucDay = ptm->tm_mday;
stSystemTime.ucHour = ptm->tm_hour;
stSystemTime.ucMin = ptm->tm_min;
stSystemTime.ucSec = ptm->tm_sec;
}
int SetSystemTime(void) //修改系统时间 不能写到使用settimeofday()不能真正的修改系统时间
{
char t_string[] = "2012-04-28 22:30:00";
struct tm time_tm;
struct timeval time_tv;
time_t timep;
int ret = 0;
sscanf(t_string, "%d-%d-%d %d:%d:%d", &time_tm.tm_year, &time_tm.tm_mon, &time_tm.tm_mday, &time_tm.tm_hour, &time_tm.tm_min, &time_tm.tm_sec);
time_tm.tm_year -= 1900;
time_tm.tm_mon -= 1;
time_tm.tm_wday = 0;
time_tm.tm_yday = 0;
time_tm.tm_isdst = 0;
timep = mktime(&time_tm);
time_tv.tv_sec = timep;
time_tv.tv_usec = 0;
ret = settimeofday(&time_tv, NULL);
if(ret != 0)
{
fprintf(stderr, "settimeofday failed\n");
return -1;
}
return 0;
}
#include <time.h>
int stime(time_t *t);
参数说明:
t是以秒为单位的时间值,从GMT1970年1月1日0时0分0秒开始计算。
#include <time.h>
#include <stdio.h>
#include <sys/time.h>
int main()
{
long int time_sec = 0;
int ret = 0;
ret = stime(&time_sec); //time_sec是以秒为单位的时间值,从GMT1970年1月1日0时0分0秒开始计算
if(ret != 0)
printf("set error\n");
fflush(stdout);
system("hwclock --systohc"); //注意:使用stime不能真正的修改系统时间,当重新启动计算机之后,可以观察到修改无效。因为stime没有将
时间写入CMOS.要写入bois需要调用 hwclock -w 程序
}
上一篇: 在JS中如何实现两个变量值的交换方法
下一篇: 预览小程序时提示运行环境加载失败怎么办