1

为什么现在和现在之间的差异时间会导致一小时?不应该是0吗?

time_t diffe = difftime(now, now);
CCLOG("wow %i", localtime(&diffe)->tm_hour);

日志结果 = “哇 1”

谢谢

4

3 回答 3

5

difference是一个双精度值0

当您使用time_t带值0时,epoch这是 1970-01-01 00:00:00。当您使用localtime和 提前一小时的时区解释这一点时GMT,您会得到 1970-01-01 01:00:00,这就是您看到的原因

1 hour

“不同之处”。

于 2013-03-08T16:49:01.583 回答
1

difftime返回 a double(秒数),而不是time_t.

localtime, 另一方面,接受一个time_t*论点。通过 adouble*没有多大意义。

于 2013-03-08T16:44:27.737 回答
0

difftime返回以秒为单位的差异(双)。localtime另一方面,tm使用提供的值初始化结构。所以我的猜测是你正在GMT+1时区执行代码。要获得小时差,只需打印difftime(now, now) / (60.0 * 60.0)

于 2013-03-08T16:45:08.497 回答