NSDate现在距离我的ios仿真器只有1小时

时间:2013-10-02 23:49:39

标签: iphone nsdate picker nscalendar nstimezone

您好我正在创建一个我用来设置Picker的NSDate,但是当我将选择器日期输出到NSLog时,它总是比实际选择器中显示的时间晚一个小时。

另外作为测试,我注意到代码: NSDate * now = [NSDate date]; //应该在我的模拟器上给我当前的日期和时间 NSLog(@“现在的日期和时间:%@”,现在);

NSLog值总是比模拟器上显示的时间晚1小时。

我的问题是为什么?

提前致谢:)

更新---------------------------------------------- ----------------------------------

我做了几个测试,结果证明使用NSGregorian日历的NSDate返回了正确的时间,然后使用currentCalendar的NSDate关闭了1小时。

所以我的新问题是为什么?我已经检查了我的模拟器上的设置,并且设备的日历设置为Gregorian。这可能是由于时区差异造成的吗?如果是这样,那么有没有办法让我将选择器设置为使用与用户设备相同的时区?

由于

1 个答案:

答案 0 :(得分:2)

我认为这是因为您的模拟器时间设置为默认时区(EN)。 NSDate始终根据您当地时间设置。当您在设备上试用它时,它是正确的。

我在我的项目中有这个代码并且工作正常:

NSDate*now = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd.MM.yyyy"];

我创建日期并将其存储到我的CoreData。我的实际时间总是在我的设备上。

无论如何,祝贺你的新iPhone。欢迎来到大苹果家庭! :)