QT5实现程序修改系统时间

目前电脑的系统时间一般是自动与time.windows.com进行在线同步,每次同步的时间周期为一周
系统时间更新.png
-目前实现程序进行系统时间的修改,如果想实现程序自我对时,就需要把系统自带的Internet时间同步设置关闭。
-QT本身不提供时间设置的函数,实现修改系统时间使用windows的native API函数SetSystemTime函数,因此头文件里需要加入#include <Windows.h>
代码实现

void MainWindow::on_pushButton_clicked()
{
    SYSTEMTIME st;
       GetLocalTime(&st);
       st.wHour=ui->lineEdit_Hour->value();
       st.wMinute=ui->lineEdit_Minu->value();
       st.wSecond=ui->lineEdit_Sec->value();
       SetLocalTime(&st);
}

网上有老铁说更改时间会出现8个小时的误差,其代码如下:

bool MainWindow::timeedit()
{
    SYSTEMTIME st;
    GetSystemTime(&st);
    st.wHour = ui->timeEdit->time().hour();
    st.wMinute = ui->timeEdit->time().minute();
    return SetSystemTime(&st);
}

以上的代码运行结果会比当前时间少八个小时,是因为GetSystemTime()获取的是格林尼治时间;北京时间是时区+8,所以是修改时间有偏差

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值