NSDate timeIntervalSinceNow和本地时区?

时间:2013-07-31 14:39:27

标签: objective-c cocoa-touch nsdate nstimeinterval nstimezone

我正在进行计算,以找到已知NSTimeInterval(格式为GMT / UTC)与设备当前所在的当前时间(和时区)之间的futureDate

NSTimeInterval approachInterval = [futureDate timeIntervalSinceNow];

我知道NSDate不存储任何timeZone特定数据,而是在日期需要在设备上显示时计算的内容。

我的问题是,从我最初的测试(我目前处于GMT + 0001),似乎返回的NSTimeInterval没有考虑我当地的时区。我是否必须手动计算时区偏移量并将其从我的间隔中移除,并且考虑到我无法为NSDate提供正确的时区(使用timeIntervalSinceDate:,这是最好的方式例如)

1 个答案:

答案 0 :(得分:3)

NSDate表示单个时间点。它没有(也不需要!!)时区。所以“一个已知的futureDate(格林威治标准时间/ UTC)”“我无法提供具有正确时区的NSDate”没有意义。

[futureDate timeIntervalSinceNow]返回futureDate和之间的时间间隔 当前日期和时间,完全独立于任何时区。

如果您没有得到预期结果,那么您对futureDate的计算可能是错误的。