我正在尝试使用以下c ++代码更改Linux中的当前时间:
time_t * t = new time_t(QString::toLongLong(argv[1]));
int returnValue = stime(t);
qDebug() << (QString("set time return value %1").arg(returnValue));
qDebug() << (QString("setting time %1").arg(*t));
QProcess pProcess;
pProcess.start("hwclock", QStringList() << "-w " << "-u");
即使返回值没有返回错误(它是0),我使用argv [1]给出的时间也没有设置。为了验证它,在程序执行后,我在终端上键入“ date”,并且未设置它。你有什么想法吗?
答案 0 :(得分:0)
首先,您没有将时间浪费在hwclock
上。 “ --set”在哪里? “-日期”或其类似物在哪里?
第二个正确的实用程序来设置系统日期和时间是date
。
答案 1 :(得分:0)
似乎操作系统(Ubuntu 16.06)正在重置时间。我必须在终端中执行以下命令:
systemctl stop systemd-timesyncd
systemctl disable systemd-timesyncd