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

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 

/* 时间设置 */
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
}

你可能感兴趣的:(Linux,Qt,C/C++,qt,linux,开发语言)