QT在linux环境下读取和设置系统时间(通过system来直接调用Linux命令,注意权限问题)
Posted 朝闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT在linux环境下读取和设置系统时间(通过system来直接调用Linux命令,注意权限问题)相关的知识,希望对你有一定的参考价值。
QT在Linux环境下读取和设置系统时间
本文博客链接:http://blog.csdn.NET/jdh99,作者:jdh,转载请注明.
环境:
主机:Fedora12
开发软件:QT
读取系统时间
- void moreidDialog::refresh_time()
- {
- QDateTime time;
- txt_time->setText(time.currentDateTime().toString("yyyy") + "." + \
- time.currentDateTime().toString("M") + "." + \
- time.currentDateTime().toString("d") + "." + \
- time.currentDateTime().toString("h") + "." + \
- time.currentDateTime().toString("m"));
- }
设置系统时间
- //保存时间键
- void moreidDialog::slot_save_time_key()
- {
- QDateTime time;
- QString str = txt_time->text();
- //判断格式是否正确
- if (str.count(".") != 4)
- {
- txt_time->setText(tr("ge shi cuo wu"));
- return;
- }
- int i = 0,j = 0;
- i = str.indexOf(".");
- QString year = str.mid(0,i);
- j = str.indexOf(".",i + 1);
- QString month = str.mid(i + 1,j - i - 1);
- i = j;
- j = str.indexOf(".",i + 1);
- QString day = str.mid(i + 1,j - i - 1);
- i = j;
- j = str.indexOf(".",i + 1);
- QString hour = str.mid(i + 1,j - i - 1);
- i = j;
- j = str.indexOf(".",i + 1);
- QString min = str.mid(i + 1,j - i - 1);
- bool ok = false;
- year.toInt(&ok);
- if (ok == false)
- {
- txt_time->setText(tr("ge shi cuo wu"));
- return;
- }
- month.toInt(&ok);
- if (ok == false)
- {
- txt_time->setText(tr("ge shi cuo wu"));
- return;
- }
- day.toInt(&ok);
- if (ok == false)
- {
- txt_time->setText(tr("ge shi cuo wu"));
- return;
- }
- hour.toInt(&ok);
- if (ok == false)
- {
- txt_time->setText(tr("ge shi cuo wu"));
- return;
- }
- min.toInt(&ok);
- if (ok == false)
- {
- txt_time->setText(tr("ge shi cuo wu"));
- return;
- }
- str = "date -s " + month + "/" + day + "/" + year;
- system(str.toLatin1().data());
- str = "date -s " + hour + ":" + min + ":" + "00";
- system(str.toLatin1().data());
- //强制写入到CMOS
- system("clock -w");
- }
硬件时钟同步到系统时钟:hwclock --hctosys
系统时钟同步到硬件时钟:hwclock -systohc
http://blog.csdn.net/jdh99/article/details/7102196
以上是关于QT在linux环境下读取和设置系统时间(通过system来直接调用Linux命令,注意权限问题)的主要内容,如果未能解决你的问题,请参考以下文章