[[NSDate date] timeIntervalSince1970]似乎落后1小时

Mik*_*keT 7 iphone objective-c ios4

我正在编写一个与某些Web服务进行通信的应用程序.当在服务器上更新变量时,它将返回一个unix时间戳,以告诉我何时更新它.然后我可以用它来比较它:

[[NSDate date]timeIntervalSince1970] 
Run Code Online (Sandbox Code Playgroud)

让事情保持同步.

iPhone上的系统时间是正确的.但是unix时间似乎落后于服务器1小时(系统时间如时钟所示).为什么会这样?我需要设置时区吗?

Tom*_*mmy 12

timeIntervalSince1970 被定义为返回:

接收器与参考日期之间的间隔,1970年1月1日,GMT.

您是否有可能将其定义为1970年1月1日在某个其他时区定义的时间?如果是这样,最简单的方法是使用timeIntervalSinceDate:而不是timeIntervalSince1970使用NSDate dateByAddingTimeInterval:来从GMT的参考日期移动到理想时区的参考日期.

secondsFromGMTForDate:如果您不想硬编码,可以使用NSTimeZone的属性.