【Qt】Qt修改Linux系统时间,C语言修改Linux系统时间

40 篇文章 0 订阅
8 篇文章 0 订阅

1. shell命令

#设置系统软件时间
date -s "2023-05-20 00:00:00"
#查看系统软件时间
date 

#设置硬件时间RTC0(默认RTC)
hwclock -w
#获取硬件时间RTC0
hwclock

#设置硬件时间RTC1(默认RTC)
hwclock -w -f /dev/rtc1
#获取硬件时间RTC1
hwclock -f /dev/rtc1 --show

#同步RTC1的时间到RTC0
hwclock --rtc=/dev/rtc1 --hctosys 

2. Qt代码

//设置时间,time的格式 "yyyy-mm-dd hh:mm:ss"
void setTime(const QString &time)
{
	QStringList arg;

	//soft
	arg << "-s" << time;
	QProcess::execute("date", arg);
	
	//rtc0
	arg.clear();
	arg << "-w";
	QProcess::execute("hwclock", arg);
	
	//rtc1
	arg.clear();
	arg << "-w" << "-f" << "/dev/rtc1";
	QProcess::execute("hwclock", arg);
}

//同步时间
void syncTime(void)
{
	//time sync
    QStringList arg;
    arg << "--rtc=/dev/rtc1" << "--hctosys";
    QProcess::execute("hwclock", arg);
}

3. C语言修改Linux系统时间

#include <time.h>

/* 时间设置 */
bool Ui_ToolRealTimeSet(UI_TIME_T * set_time)
{
    #ifdef __WIN_SYS
        printf("win set time\n");
        return true;
    #else
        struct tm tm_time;
        time_t st;

        tm_time.tm_year    = set_time->Year - 1900;
        tm_time.tm_mon     = set_time->Month - 1;
        tm_time.tm_mday    = set_time->Day;
        tm_time.tm_hour    = set_time->Hour;
        tm_time.tm_min     = set_time->Minute;
        tm_time.tm_sec     = set_time->Second;

        st = mktime(&tm_time);
        if(st == -1)
            return false;

        if(!stime(&st))
        {
            fflush(stdout);
            system("hwclock -w");
            return true;
        }
        else
        {
            return false;
        }
    #endif // __WIN_SYS
}
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值