当我拨打[NSDate date]
时,它会比应该的时间少2小时。我已经检查了我的电脑时钟设置,它们都没问题。我已经检查过iPhone中的设置,时区和时钟都可以。甚至模拟器在顶部工具栏上显示正确的时间。但是当我尝试记录当前日期时,它显示的时间比它应该少2小时。我的想法用尽了。
答案 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中)
再次感谢大家的帮助..