文章类型: VC&C++
关键词: VC,ATL,时间日期类,COleDateTime,CString,转换,Format
内容摘要: VC中关于ATL时间日期类COleDateTime和CString的转换

VC中关于ATL时间日期类COleDateTime和CString的转换

2016/10/24 13:49:24    来源:apple    阅读:

一、COleDateTime
.Net有DateTime类用来处理日期时间,很方便,VC则可以用ATL库的COleDateTime类,用起来也还不错:
首先包含相关的头文件:
#include <ATLComTime.h>

初始化COleDateTime实例:
COleDateTime date_time;
date_time.SetDate(Year, Month, Day);
date_time.SetTime(Hour, Minute, Second);

COleDateTime重载了+,-,+=,-=等运算符,可以方便的让时间日期前进倒退,操作对象为COleDateTimeSpan,如:
date_time += COleDateTimeSpan(Day, Hour, Minute, Second); //天,时,分,秒

COleDateTime还可以将一个有效的时间字符串Parse过来,初始化实例本身:
date_time.ParseDateTime(CString("2008-04-18 09:00:00"));

反过来,COleDateTime可以Format成一个时间日期格式的字符串CString:
date_time.Format(L"%Y%m%d"); // 年,月,日, 注意m大写表示分钟Minute

 二、CString
CString用法比较简单,可是有些用法长期不用会忘掉,为了下次要用的时候能快速通过经验找到答案,所以还是写下一些东西。
CString 有个Format成员,能转化成一个CString,参数跟C的printf用法差不多,如:
CString str;
str.Format("%s%d%02i", CString("Example"), 9, 1);// 第一个参数string,第二个Signed十进制数,第三个是宽度为2,不够则以0填充的Signed十进制数,

因此操作之后str的值为:
Expample901

 三、CString类型(或char dateTime[20]数组类型)的日期转换为其他的CString类型的日期

直接写代码:

//pOppointment[i].CreateTime即可以为char数组,也可以为CString类型
COleVariant vCreateTime(pOppointment[i].CreateTime);
vCreateTime.ChangeType(VT_DATE);
COleDateTime oleCreateTime = vCreateTime;
//设置系统时间格式,为了和数据库里时间格式一致
CString sCreateTime = oleCreateTime.Format("%Y/%m/%d %H:%M");//结果为:"2017/11/28 09:58"
↑ 上一篇文章:(VC++) CString Format的用法 关键词:VC++,CString,Format,用法,windo.. 发布日期:2016/10/24 11:12:51
↓ 下一篇文章:C++接口实现总结 关键词:C++接口实现总结 发布日期:2016/10/28 15:08:09
相关文章:
CString Format 转换 乱码问题 关键词:CString,Format,转换,乱码问题 发布日期:2016-09-23 16:00
VC++中的CString、char、int类型转换 关键词:VC++中的CString、char、int类型转换 发布日期:2016-11-17 10:17
VC CString 转换 const char* 关键词:VC,CString,转换,const,char* 发布日期:2017-08-25 11:42
相关目录:.NETVC&C++软件开发
我要评论
正在加载评论信息......