为什么现在和现在之间的差异会导致一小时的结果?不应该是0吗?
time_t diffe = difftime(now, now);
CCLOG("wow %i", localtime(&diffe)->tm_hour);
log =“wow 1”的结果
THKS
答案 0 :(得分:5)
difference
是值为0
的双倍。
当您使用值为time_t
的{{1}}时,这是epoch
,即1970-01-01 00:00:00。当您使用localtime
和时区比0
提前一小时解释时,您会得到1970-01-01 01:00:00,这就是您看到的原因
GMT
“差”。
答案 1 :(得分:1)
difftime
返回double
(秒数),而不是time_t
。
localtime
采用time_t*
参数。传递double*
没有多大意义。
答案 2 :(得分:0)
difftime
以秒为单位返回差异(double)。另一方面,localtime
使用提供的值初始化tm
结构。所以我的猜测是你在GMT+1
时区执行代码。要获得数小时的差异,只需打印difftime(now, now) / (60.0 * 60.0)