显示前一个date的NSLog

我想从两个date之间添加的核心数据检索所有条目。我正在使用NSPredicate 。 由于我没有得到正确的结果,我试图loggingdate。它显示的是以前的date。谷歌search了一段时间后,我补充

[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 到我的code.Now,它显示正确的date,但结果仍然是错误的。

这是我使用的代码。

 NSDate *fromDate = [[self dateFormatter]dateFromString:self.fromDateField.text]; NSLog(@"%@",fromDate); NSDate *toDate = [[self dateFormatter]dateFromString:self.toDateField.text]; NSLog(@"%@",toDate); NSComparisonResult result = [fromDate compare:toDate]; switch (result) { case NSOrderedAscending: { //code } - (NSDateFormatter *)dateFormatter { static NSDateFormatter *dateFormatter = nil; if (dateFormatter == nil) { dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; } return dateFormatter; } 

提前致谢

如果你直接login一个NSDate对象,它将总是显示格林尼治标准时间/ UTC时区。 您必须loggingdate格式化程序的输出。

 NSLog(@"%@",[self.dateFormatter stringFromDate:toDate]); 

这将考虑您的时区。 或者更好:dateformatter的日历的时区 – 如果你不改变它,那么设备的默认设置是什么。