C++ COleDateTime

数据库中时间存放的是COleDateTime型的时间,其值是dobule型的浮点数,而我们需要将其显示成字符型的年-----秒的形式,因此需要转换。以下是我的转换代码,基于sqlite3数据库。

COleDateTime vtime;

DOUBLE sql_time=sqlite3_column_double(stat,i);

vtime=sql_time;

CString str_tempTime=vtime.Format(_T("%Y-%m-%d %H:%M:%S"));//这句是最重要的啊哈

MessageBox(str_tempTime);

下边是从网上搜集的些关于CTime, COleDateTime,CString数据类型之间的转换。

   //
// 1.CString
类型的时间串,转换到COleDateTime
//
// CString str ="2003-10-27 6:24:37"; //CString--->COleDateTime
// CString str ="2003-10-27 08:09:10"; //CString--->COleDateTime
// CString str ="2003-10-27";    //CString--->COleDateTime
// CString str ="2003/10/27";    //CString--->COleDateTime
CString str ="03/10/27";    //CString--->COleDateTime

COleVariant vtime(str);
vtime.ChangeType(VT_DATE);
COleDateTime time4=vtime;


//
// 2.
COleDateTime类型转换到 CTime
//
SYSTEMTIME   systime;   
VariantTimeToSystemTime(time4,   &systime);   
CTime   ctm(systime);  

//
// 3.CTime
可以直接加上一个绝对秒数
//
ctm + =3601;//
一小时零一秒


//
// 4.
打印出来
//
CString ss;
ss = ctm.Format("%Y-%m-%d %H:%M:%S");
AfxMessageBox(ss);


COledateTime dt = COledateTime::GetCurrentTime();
报Debug   Accertion   Failed错误,看msdn其中有这个函数的说明,但release版本没问题。
c:/winnt/system32/mfco42.dll   文件的版本问题 下载替换即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值