您好我正在创建一个我用来设置Picker的NSDate,但是当我将选择器日期输出到NSLog时,它总是比实际选择器中显示的时间晚一个小时。
另外作为测试,我注意到代码: NSDate * now = [NSDate date]; //应该在我的模拟器上给我当前的日期和时间 NSLog(@“现在的日期和时间:%@”,现在);
NSLog值总是比模拟器上显示的时间晚1小时。
我的问题是为什么?
提前致谢:)
更新---------------------------------------------- ----------------------------------
我做了几个测试,结果证明使用NSGregorian日历的NSDate返回了正确的时间,然后使用currentCalendar的NSDate关闭了1小时。
所以我的新问题是为什么?我已经检查了我的模拟器上的设置,并且设备的日历设置为Gregorian。这可能是由于时区差异造成的吗?如果是这样,那么有没有办法让我将选择器设置为使用与用户设备相同的时区?
由于
答案 0 :(得分:2)
我认为这是因为您的模拟器时间设置为默认时区(EN)。 NSDate始终根据您当地时间设置。当您在设备上试用它时,它是正确的。
我在我的项目中有这个代码并且工作正常:
NSDate*now = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd.MM.yyyy"];
我创建日期并将其存储到我的CoreData。我的实际时间总是在我的设备上。
无论如何,祝贺你的新iPhone。欢迎来到大苹果家庭! :)