MFC下的ColeDateTime类转化QT下的QDateTime类的实现方法,深入讲解QDQDateTime,Double的时间转化QDateTime

简介:

COleDateTime类型实现为一个浮点值,从1899年12月30日午夜起计算"日"数。所以1899年12月31日午夜用数1.0来表示。相似的,1900年1月1日下午6时用数2.75来表示,1899年12月29日午夜是-1.0。而1899年12月29日下午6 时用数-0.25来表示。

这段话是百度百科上面的,这段话的意思就是说,ColeDateTime类是用一个八个字节的double类型的,双精度浮点来表示从1899年到现在的时间,事件的整数部分就是代表的天。小数部分就是代表的几分之一天,例如1.25,就是代表的1右四分分之一天。这样的话1.25就标的的是1900年1月1日上午的6点。

所以,天数对应的秒数的计算公式就是:

秒 = double值*3600*24;

QDateTime对象通常可以由明白地给定的日期和时间来创建,或者使用静态函数currentDateTime()让QDateTime对象包含系统时钟的日期时间。日期时间也可以由setDate()和setTime()来改变。日期时间也可以通过使用setTime_t()函数来得到一个POSIX标准的时间,它表示的是自从1970年1月1日00:00:00以来的秒数。fromString()函数通过一个给定的字符串和在字符串中日期时间格式的间隔说明就可以返回一个QDateTime。

上面这段话是摘自,QT的帮助手册;从这段话可以看出QT中的时间类是从1970年1月1日00:00:00以来的秒数所以我们就可以通过,秒数这个连接纽带进行转换。

转化之前需要熟悉QDateTime中的两个函数;

构造函数:

QDateTime::QDateTime ( const QDate & date )

构造一个日期为date和零时间(00:00:00.000)的日期时间。

转化函数:

QDateTime QDateTime::addSecs ( int nsecs ) const

返回这个日期时间对象nsecs秒之后的一个日期时间对象(或者nsecs秒之前的,如果它是一个负数)。

具体实现流程代码:


 QDateTime date(QDate(1970,1,1));//构造出1970的起点时间
senc = (senc - 25569)*3600*24;//转化出秒
 QDateTime date1 = date.addSecs((qint64)senc);//加上出需求时间对象
	/*使用方法*/
    list<<QString(date1.date().year()+"-"+date1.date().month())+"-"+date1.date().day();
    list<<QString(date1.time().hour()+":"+date1.time().minute())+":"+date1.time().second();






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值