当前位置:C++技术网 > 精选软件 > CString字符串转化为CTime时间格式代码详细说明

CString字符串转化为CTime时间格式代码详细说明

更新时间:2016-05-26 19:09:30浏览次数:1+次

    在文章《CTime格式化时间格式化符号详细说明》中,详细描述了如何用CTime格式化时间。CTime格式化时间返回的是一个CString类型字符串,这是CTime到CString的一个转变。
    然而在有些时候,我们CString存储的时间,需要转换赋值给CTime变量,怎么办呢?
    我们找不到可以直接将字符串转换为时间格式的C函数,CTime也没有接受字符串初始化或者赋值的,难道要我们自己去字符串提取时间的各个部分吗?这样也太麻烦了吧。
    不过通过查阅资料,发现了一个转换方法,那就是借助COleDateTime类。COleDateTime类提供了将字符串转换为时间格式的成员函数ParseDateTime,所以转为了时间格式后,再在不同的时间格式转换就方便了。ParseDateTime接受字符串,格式化好的格式存储在内部成员中,所以我们在用COleDateTime类的GetAsSystemTime函数,将内部时间格式转化为系统时间格式,函数的名称也可以看出这个意思。
    然后我们可以发现,CTime是可以用系统时间来初始化的,这样就可以完成了一次字符串转为时间类型的过程。代码如下:
CTime GetTime(CString strTime)
{
    COleDateTime oletime;
    oletime.ParseDateTime(strTime);
    SYSTEMTIME systime;
    oletime.GetAsSystemTime(systime);
    CTime mytime = CTime(systime);
    return mytime;
}
CString strTime = _T("2016-5-26 18:57:00");
CTime myTime = GetTime(strTime);

    时间格式包含有系统时间、统一格式时间、文件时间等等,但是只要得到了一种时间,就可以很方便的转换,基本上都可以通过系统之间来做中转。更多用法,等你去发现咯。

    知道了格式化时间和将时间字符串转为CTime变量,基本上可以满足常用时间处理需求了。