我正在进行计算,以找到已知NSTimeInterval
(格式为GMT / UTC)与设备当前所在的当前时间(和时区)之间的futureDate
。
NSTimeInterval approachInterval = [futureDate timeIntervalSinceNow];
我知道NSDate
不存储任何timeZone特定数据,而是在日期需要在设备上显示时计算的内容。
我的问题是,从我最初的测试(我目前处于GMT + 0001),似乎返回的NSTimeInterval
没有考虑我当地的时区。我是否必须手动计算时区偏移量并将其从我的间隔中移除,并且考虑到我无法为NSDate
提供正确的时区(使用timeIntervalSinceDate:
,这是最好的方式例如)
答案 0 :(得分:3)
NSDate
表示单个时间点。它没有(也不需要!!)时区。所以“一个已知的futureDate(格林威治标准时间/ UTC)”或“我无法提供具有正确时区的NSDate”没有意义。
[futureDate timeIntervalSinceNow]
返回futureDate
和之间的时间间隔
当前日期和时间,完全独立于任何时区。
如果您没有得到预期结果,那么您对futureDate
的计算可能是错误的。