QT时间设置

来源:互联网 发布:限制手机使用时间软件 编辑:程序博客网 时间:2024/05/21 09:10

1.首先,转一下:

问:Linux下如何保存设置的系统时间?
答:分以下步骤进行:
(1)通过开发板控制台设置开发板的当前系统时间:
date [MMDDhhmm[[CC]YY][.ss]]
例如:
date 010410462008
(2)将系统时间写入RTC:
hwclock -w
读出检验一下,写入是否正确:
hwclock -r
(3)修改开发板根文件系统中的/etc/init.d/rcS文件,
添加一行:
hwclock -s 或都/sbin/hwclock -s
用于在系统启动时从RTC读出日期时间并设置到系统时间。
(4)重新启动开发板,验证系统时间是否争取。
    另注: 

语法格式:

hwclock [--adjust][--debug][--hctosys][--show][--systohc][--test]

[--utc][--version][--set --date=<日期与时间>]

参数说明:

  • –adjust or -a

hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。

  • –hctosys or -s

将系统时钟调整为与目前的硬件时钟一致。

  • –set –date=<日期与时间>

设定硬件时钟。

  • –show or -r

显示硬件时钟的时间与日期。

  • –systohc or -w

将硬件时钟调整为与目前的系统时钟一致。

  • –version or -v

显示版本信息。

  • –debug

显示hwclock执行时详细的信息。

  • –test

仅测试程序,而不会实际更改硬件时钟。

  • –utc

若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。

同步系统时钟和硬件时钟

# hwclock –w

设置硬件时钟时间:

# hwclock --set --date="9/8/2007 16:45:05"

查看硬件时钟

# hwclock -r1.在虚拟终端中使用date命令来查看和设置系统时间

    查看系统时钟的操作:

    # date

    设置系统时钟的操作:
    # date 091713272003.30

    通用的设置格式:
    # date 月日时分年.秒

    2.使用hwclock或clock命令查看和设置硬件时钟
    查看硬件时钟的操作:
    # hwclock --show 或
    # clock --show
    2003年09月17日 星期三 13时24分11秒 -0.482735 seconds

    设置硬件时钟的操作:
    # hwclock --set --date="09/17/2003 13:26:00"

    或者
    # clock --set --date="09/17/2003 13:26:00"

    通用的设置格式:hwclock/clock --set --date=“月/日/年时:分:秒”。

    3.同步系统时钟和硬件时钟

    Linux系统(笔者使用的是Red Hat 8.0,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步。如果不大方便重新启动的话(服务器通常很少重启),使用clock或hwclock命令来同步系统时钟和硬件时钟。

    硬件时钟与系统时钟同步:
    # hwclock --hctosys

    或者
    # clock --hctosys

    上面命令中,--hctosys表示Hardware Clock to SYStem clock。

    系统时钟和硬件时钟同步:
    # hwclock --systohc

    或者
    # clock --systohc


2.我的方法

Widget::Widget(QWidget *parent) :    QWidget(parent),    ui(new Ui::Widget){    ui->setupUi(this);    lineedit=new QLineEdit(this);    lineedit->setGeometry(0,100,200,20);    connect(lineedit,SIGNAL(returnPressed()),this,SLOT(changedate()));    lineedit->setValidator(new QIntValidator(lineedit));}void Widget::changedate(){    QString valueStr=lineedit->text();    long valueInt=valueStr.toInt();    qDebug()<<valueInt;    int year=valueInt/100000000;    qDebug()<<year;    int mon=(valueInt%100000000)/1000000;    qDebug()<<mon;    int mday=((valueInt%100000000)%1000000)/10000;    qDebug()<<mday;    int hour=(((valueInt%100000000)%1000000)%10000)/100;    qDebug()<<hour;    int min=(((valueInt%100000000)%1000000)%10000)%100;    qDebug()<<min;    adjustdate(year+2000,mon,mday,hour,min,0);}void  Widget::adjustdate(int year,int mon,int mday,int hour,int min,int sec)  {     nowtime.tm_sec=sec;/* Seconds.[0-60](1 leap second)*/     nowtime.tm_min=min;/* Minutes.[0-59] */     nowtime.tm_hour=hour;/* Hours. [0-23] */     nowtime.tm_mday=mday;/*  Day.[1-31]  */     nowtime.tm_mon=mon-1;/* Month.[0-11]*/     nowtime.tm_year=year-1900;/* Year- 1900.*/     nowtime.tm_isdst=-1;/*DST.[-1/0/1]*/     t=mktime(&nowtime);     stime(&t);  }




3.用QLineEdit来实例一个lineedit,然后让它只能输入数字,我发现,尼玛,最多输入十个,好吧对我来说足够了,用两位表示年份就可以了,其他的月日小时分都是2个,秒钟就自己设置算了,最后调用了一个C里面的结构体,我要申明这个adjustdate函数是我网上找的,在比较了用date -s system() QProcess QDateTime这些东西之后,我发现还是我的最好。。。啦啦啦,结束!

0 0
原创粉丝点击