Iphone NSDate现在距离我的ios模拟器1小时

Iphone NSDate现在距离我的ios模拟器1小时,iphone,nsdate,picker,nscalendar,nstimezone,Iphone,Nsdate,Picker,Nscalendar,Nstimezone,您好,我正在创建一个NSDate,用于设置选择器,但当我将选择器日期输出到NSLog时,它总是比实际选择器中显示的时间晚一小时 作为测试,我注意到代码: NSDate*现在=[NSDate日期]//应该给我模拟器上的当前日期和时间 NSLog(@“现在的日期和时间:%@”,现在) NSLog值始终比我的模拟器上显示的时间晚1小时 我的问题是为什么 提前感谢:) 更新------------------------------------------------------------------

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

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

NSLog值始终比我的模拟器上显示的时间晚1小时

我的问题是为什么

提前感谢:)

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

我又做了两次测试,结果表明使用NSGregorian Calendar的NSDate返回了正确的时间,然后使用currentCalendar的NSDate关闭了1小时

所以我的新问题是为什么会这样?我已经检查了模拟器上的设置,设备的日历设置为Gregorian。这可能是因为时区不同吗?如果是这样的话,我有没有办法将选择器设置为使用与用户设备相同的时区


谢谢

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

我的项目中有此代码,工作正常:

NSDate*now = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd.MM.yyyy"];
我创建日期并将其存储到CoreData中。该时间将始终显示我在设备上的实际时间


祝贺你的新iPhone。欢迎来到大苹果家庭!:)

请尝试使用以下+(id)dateWithNaturalLanguageString:(NSString*)字符串区域设置:(id)LocalDictionary打印日期,并使用[[NSUserDefaults standardUserDefaults]dictionaryRepresentation]作为LocalDictionary。您好,感谢您的评论,但我收到了一个错误,即:选择器“DateWithNaturalLanguagesting”没有已知的类方法:“嗨,Mayo323,谢谢您的评论,您是对的,NSDate确实返回了正确的时间。我又做了两次测试,结果表明使用NSGregorian Calendar的NSDate返回了正确的时间,然后使用currentCalendar的NSDate关闭了1小时。所以我的新问题是为什么会这样?我已经检查了模拟器上的设置,设备的日历设置为Gregorian。如何使我的选择器与我的模拟器/设备具有相同的时区?模拟器将始终为-1小时。设备上的时间将来自您的设备本地时区。别笑,但我还没有iphone来测试我的应用程序。不过我很快就会得到一个。感谢您的帮助,我会将您的答案标记为正确(我确信是这样):)您好,我终于得到了iOS 7.0.2版的iPhone,从我设备上的选择器中返回的日期和时间在我的NSLog中仍显示为落后一小时。所以我恐怕不得不取消你的答案。