iPhone4 iOS5 [[NSTimeZone localTimeZone] daylightSavingTimeOffset]夏令时错了吗?

Ale*_*one 1 nsdate dst nstimezone iphone-4 ios5

我住在美国东部时区(EST),几周前夏令时开始了.我正在测试我之前的一些代码,它正在工作(据说)很好,并注意到第二天的计算是在1小时前运行的.

这是我用于测试的代码:

 int  gmtOffset =  [[NSTimeZone localTimeZone] secondsFromGMT];
 int daylightOffset =  [[NSTimeZone localTimeZone] daylightSavingTimeOffset];

  int daySeconds =  ((int)([date timeIntervalSinceReferenceDate]+gmtOffset+daylightOffset))%(86400+1);

 NSLog(@"Day seconds: %i", daySeconds);
Run Code Online (Sandbox Code Playgroud)

结果比预期值小3600秒.daylightOffset为0.如何正确获取用户所在时区的日光偏移?NSDateFormatter正确地解析了日期,所以它必须知道NSTimeZone没有告诉我的东西.

谢谢!

Kir*_*kov 5

[localTime secondsFromGMT]回归真实GMT包括夏令时,就可以得到通过偏移本身[localTime daylightSavingTimeOffset]