NSDate日期比它应该少2小时

时间:2011-04-12 07:55:08

标签: iphone objective-c xcode ios nsdate

当我拨打[NSDate date]时,它会比应该的时间少2小时。我已经检查了我的电脑时钟设置,它们都没问题。我已经检查过iPhone中的设置,时区和时钟都可以。甚至模拟器在顶部工具栏上显示正确的时间。但是当我尝试记录当前日期时,它显示的时间比它应该少2小时。我的想法用尽了。

3 个答案:

答案 0 :(得分:2)

[NSDate日期]返回的所有日期都在GMT时区。

当您使用任何NSDateFormatter时,只需设置时区,它将打印出正确的时间。

答案 1 :(得分:0)

仔细查看NSLog()语句的输出。您将看到输出始终包含使用标准UTC的时区。因此,考虑到时区,日期实际上是正确的。

答案 2 :(得分:0)

我在这里找到了我的解决方案:How to convert time to the time zone of the iPhone device?

因此,如果您想要将[NSDate日期]更改为指向本地时间,请使用上面链接中提供的代码。并且不要忘记将sourceTimeZone上的timeZoneWithAbbreviation从EST更改为GMT(因为NSDate始终在GMT中)

再次感谢大家的帮助..