Linux系统下获取、修改时间的方法

Linux系统下获取时间的方法:

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

Linux系统下修改时间的方法:

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 程序
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值