一、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"