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));