C++中怎样将一个含有具体时间的字符串和当前的时间进行比较?

在c++中怎样将含有时间的字符换和当前时间进行比较??

        time_t t = time(NULL);
    char date[25];
    strftime(date,sizeof(date),"%Y%m%d",localtime(&t)); 
        char* time = "2017-08-04 18:34:00";
        //比较date和time,判断是否是3个月之内???

我之前曾想将两个字符串中的时间都转化为int型,然后进行比较,但是发现如果将time的内容转为int,需要付出的代价有点高,想寻求一种即快速效率又高的方法。。
请指教。。。请问应该如何比较??

用库函数转换,已经是最高效的了。当然,如果你的日期有什么特殊规律,比如你说的3个月前,可以考虑只转换日期部分,忽略时间

其实最精确的方法就是都转换成时间戳然后比较,不过如果你对效率不满意的话可以对字符串进行切割,然后通过月份和日期进行比较,比如把"2017-08-04"中的08和04通过-符号切出来,然后判断是否够三个月