Qt编程19:Qt时间日期的处理(QTime、QDateTime的使用比较简单)

QTime、QDateTime的使用比较简单但是通常用的比较多,使用方式类似(以Qtime为例)

QTime类提供了时钟时间功能。
QTime对象包含时钟时间,比如从午夜开始的时、分、秒和毫秒数。

它可以从系统时钟中读取当前的时间并且度量时间的跨度。

它提供比较时间和操作时间的函数,比如加上一定的秒或毫秒。

 

toString()时间格式的一些属性:

h - 没有前置0的数字的小时(0-23或者如果显示AM/PM时,1-12)
hh - 前置0的数字的小时(00-23或者如果显示AM/PM时,01-12)
m - 没有前置0的数字的分钟(0-59)
mm - 前置0的数字的分钟(00-59)
s - 没有前置0的数字的秒(0-59)
ss - 前置0的数字的秒(00-59)
z - 没有前置0的数字的毫秒(0-999)
zzz - 前置0的数字的毫秒(000-999)
AP - 切换为AM/PM显示。AP将被“AM”或“PM”替换。
ap - 切换为am/pm显示。ap将被“am”或“pm”替换。

例如当前时间显示方式:

“hh:mm:ss.zzz”的结果将是“11:01:09.842”
“h:m:s ap”的结果将是“11:8:90 上午”

 

常用(我常用)的方法有:

QTime::currentTime();                    //获取当前时间,是一个静态函数

计时器函数

void start();                                      //设置当前时间为开始时间

int restart();                                     //设置当前时间为开始时间,并返回上次计时经过的时间,单位是毫秒

int elapsed()                                    //获取计时使用的时间,单位是毫秒

//使用

    ui->label2->setAutoFillBackground(true);
    ui->label3->setAutoFillBackground(true);
    ui->label4->setAutoFillBackground(true);
    ui->label2->setBackgroundRole(QPalette::Light);
    ui->label3->setBackgroundRole(QPalette::Dark);
    ui->label4->setBackgroundRole(QPalette::Shadow);

    //计时之前的时间
    ui->label2->setText(QTime::currentTime().toString("AP hh:mm:ss:zzz"));
    QTime time;
    //计时
    time.start();
    //睡10秒
    Sleep(1000*10);
    ui->label3->setText(QString::number(time.elapsed(),10));
    //计时之后的时间
    ui->label4->setText(QTime::currentTime().toString("AP h:m:s:z"));


 

不常用(我不常用)的方法:

    bool isNull();		//判断时间是否为空
    bool isValid();		//判断时间是否有效
    int hour();			//获取小时数
    int minute();	        //获取分钟数
    int second();		//获取秒数
    int msec();			//获取毫秒数

    bool setHMS(int h, int m, int s, int ms = 0);	//设置time
    QTime addSecs(int secs) const;			//将时间增加secs秒
    int secsTo(const QTime &t) const;			//获取从当期时间到时间t的秒数
    QTime addMSecs(int ms) const;			//将时间增加ms毫秒
    int msecsTo(const QTime &t) const;			//获取从当前时间到时间t的毫秒数

 


 QDateTime toString()格式:

日期表达式:

d - 没有前置0的数字的天(1-31)
dd - 前置0的数字的天(01-31)
ddd - 缩写的日名称(Mon-Sun)。使用QDate::shortDayName()。
dddd - 长的日名称(Monday-Sunday)。使用QDate::longDayName()。
M - 没有前置0的数字的月(1-12)
MM - 前置0的数字的月(01-12)
MMM - 缩写的月名称(Jan-Dec)。使用QDate::shortMonthName()。
MMMM - 长的月名称(January-December)。使用QDate::longMonthName()。
yy - 两位数字的年(00-99)
yyyy - 四位数字的年(0000-9999)

时间表达式:

h - 没有前置0的数字的小时(0-23或者如果显示AM/PM时,1-12)
hh - 前置0的数字的小时(00-23或者如果显示AM/PM时,01-12)
m - 没有前置0的数字的分钟(0-59)
mm - 前置0的数字的分钟(00-59)
s - 没有前置0的数字的秒(0-59)
ss - 前置0的数字的秒(00-59)
z - 没有前置0的数字的毫秒(0-999)
zzz - 前置0的数字的毫秒(000-999)
AP - 切换为AM/PM显示。AP将被“AM”或“PM”替换。
ap - 切换为am/pm显示。ap将被“am”或“pm”替换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值