目前电脑的系统时间一般是自动与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,所以是修改时间有偏差