_variant_t类型和CString类型、CTime类型的相互转换
2014-09-06 13:47
387 查看
在做MFC对数据库进行操作时,涉及到_variant_t类型和CString和CTime类型的转换,于是想整理了这几种转换方法。
_variant_t value;
CString str=(LPCTSTR)(_bstr_t)value;
2._variant_t类型转换为CTime类型
//个人方法:_variant_t类型先转换为CString类型再转换为CTime类型
_variant_t time;
CString Time=(LPCTSTR)(_bstr_t)time;
int Year,Month,Date;
sscanf(Time.GetBuffer(Time.GetLength()),"%d-%d-%d",&Year,&Month,&Date); //后面还可以取时分秒
CTime m_date(Year,Month,Date,0,0,0);
m_dtCtrl.SetTime(&m_date); //把得到的时间在时间器上显示
CString str;
_variant_t value=(LPCTSTR)str;
2.CTime类型转换为_variant_t类型 //COleDateTime和CTime都可显示时间,但可表示的时间长度不同
//个人的方法是:把时间转换为CString再转换为_variant_
COleDateTime date; //CTime date;
m_dtCtrl.GetTime(date); //GetTime函数是得到MFC时间器的表示时间,不一定是准确时间; m_dtCtrl是时间 //器CDateTimeCtrl建的变量
CString Date=date.Format("%Y-%#m-%#d");
_variant_t vTime=(LPCTSTR)Date;
提醒:Format("%Y-%#m-%#d");是去零的格式,例如2014-9-6这种,
Format("%Y-%m-%d");如果要保留零,如2014-09-06的格式。
这俩种不同格式的时间是不相等的,所以在判断时间是否相等时,注意格式问题。
总结:上面在讲_variant_t类型和CTime类型转换时,我把CString类型当成中转站,所以也附带了CTime和CString类型的相互转化,其次是可以直接把_variant_t类型直接向CTime类型转换的。
一:_variant_t类型转换成CString和CTime类型
1._variant_t类型转换为CString类型_variant_t value;
CString str=(LPCTSTR)(_bstr_t)value;
2._variant_t类型转换为CTime类型
//个人方法:_variant_t类型先转换为CString类型再转换为CTime类型
_variant_t time;
CString Time=(LPCTSTR)(_bstr_t)time;
int Year,Month,Date;
sscanf(Time.GetBuffer(Time.GetLength()),"%d-%d-%d",&Year,&Month,&Date); //后面还可以取时分秒
CTime m_date(Year,Month,Date,0,0,0);
m_dtCtrl.SetTime(&m_date); //把得到的时间在时间器上显示
二:CString类型和CTime类型转换成_variant_t类型
1.CString类型转换为_variant_t类型CString str;
_variant_t value=(LPCTSTR)str;
2.CTime类型转换为_variant_t类型 //COleDateTime和CTime都可显示时间,但可表示的时间长度不同
//个人的方法是:把时间转换为CString再转换为_variant_
COleDateTime date; //CTime date;
m_dtCtrl.GetTime(date); //GetTime函数是得到MFC时间器的表示时间,不一定是准确时间; m_dtCtrl是时间 //器CDateTimeCtrl建的变量
CString Date=date.Format("%Y-%#m-%#d");
_variant_t vTime=(LPCTSTR)Date;
提醒:Format("%Y-%#m-%#d");是去零的格式,例如2014-9-6这种,
Format("%Y-%m-%d");如果要保留零,如2014-09-06的格式。
这俩种不同格式的时间是不相等的,所以在判断时间是否相等时,注意格式问题。
总结:上面在讲_variant_t类型和CTime类型转换时,我把CString类型当成中转站,所以也附带了CTime和CString类型的相互转化,其次是可以直接把_variant_t类型直接向CTime类型转换的。
相关文章推荐
- CString TCHAR BSTR BYTE WORD DWORD COLORREF VARIANT等数据类型相互转换
- CString、_bstr_t、_variant_t等类型的相互转换
- CString、char*、string、int、_bstr_t、CTime、COleDateTime相互转换,判断一个字符串是一个浮点数
- CString、char*、string、_bstr_t、CTime、DateTime相互转换
- CString、wchar和char类型的相互转换(转载)
- VARIANT与CString相互转换
- CString、wchar和char类型的相互转换
- Variant类型转换成CString代码
- 完成一程序演示字符数组、C风格字符串、std::string和MFC中的Cstring类型之间的相互转换
- Visual C++:CString,char*,int,COleDateTime,CTime,time_t之间的相互转换
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- Delphi 变体类型(Variant)的介绍(流与变体类型的相互转换、变体类型常用的函数)
- vc++ Format 用法总结~~CString类型与其它数据类型相互转换
- 怎样把 _variant_t 类型转换成CString类型
- CTime对象类型、DWord类型相互转换
- _variant_t ,_bstr_t 与 CString 类有什么区别 以及相互转换
- 转载推荐:COM中不同字符类型相互转换,例如char*, BSTR, CString等等
- CString、char、string、int、_bstr_t、CTime、COleDateTime相互转换&判断一个字符串是一个浮点数
- CTime和DWORD类型的相互转换
- CString、char*、string、_bstr_t、CTime、DateTime相互转换(转)