1

我正在计算以找到设备当前所在NSTimeInterval的已知时间(GMT/UTC)和当前时间(和时区)之间的时间。futureDate

NSTimeInterval approachInterval = [futureDate timeIntervalSinceNow];

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

我的问题是,从我最初的测试(我目前在 GMT+0001)来看,NSTimeInterval返回的似乎没有考虑到我的本地时区。我是否必须手动计算时区偏移并将其从我的时间间隔中删除,鉴于我无法提供NSDate正确的时区(timeIntervalSinceDate:例如使用) ,这样做的最佳方法是什么

4

1 回答 1

3

NSDate代表一个时间点。它没有(也不需要!!)时区。因此,“一个已知的 futureDate(在 GMT/UTC 中)”“我无法为 NSDate 提供正确的时区”是没有意义的。

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

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

于 2013-07-31T14:51:05.257 回答