C++ 使用从字符串转换的时间获取时差

C++ 使用从字符串转换的时间获取时差,c++,C++,我想知道两次约会的区别。 一个日期是现在,另一个是从日期的字符串表示形式转换为时间的日期 我的代码如下 const char *time_details = "12/03/2014"; struct tm tm; strptime(time_details, "%m/%d/%Y", &tm); time_t mytime = mktime(&tm); time_t now; time(&now); double s

我想知道两次约会的区别。 一个日期是现在,另一个是从日期的字符串表示形式转换为时间的日期

我的代码如下

    const char *time_details = "12/03/2014";
    struct tm tm;
    strptime(time_details, "%m/%d/%Y", &tm);
    time_t mytime = mktime(&tm);

    time_t now;
    time(&now);
    double seconds = difftime(now, mytime);

    LOGG("now = %d", now);

    LOGG("mytime = %d", mytime);
    LOGG("unsigned int mytime = %d", (int)mytime);
我的输出如下所示:

now = 1417830679
mytime = -1
seconds = 1610001720
我的时间总是为-1 而且,秒的值也不正确。

使用前添加(您可能需要为变量选择其他名称)


参见

中的注释部分
tm
中是否有合理的显示?strtime的返回值是多少?tm是有效的,并且包含正确的值。而且,strtime返回有效的指针。就是这样,
mktime
在显示无效输入时失败。不过,您不需要使用
memset
,只需执行
struct tm t={}
memset(&tm, 0, sizeof(struct tm));