我想从两个日期之间添加的核心数据中检索所有条目。我正在使用NSPredicate
。由于我没有得到正确的结果,我尝试记录日期。它显示以前的日期。谷歌搜索了一段时间后我添加了
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
到我的代码。现在,它显示正确的日期,但结果仍然是错误的。
这是我使用的代码。
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;
}
提前致谢
答案 0 :(得分:1)
如果直接记录NSDate对象,它将始终以GMT / UTC时区显示该图像。你必须记录日期格式化程序的输出。
NSLog(@"%@",[self.dateFormatter stringFromDate:toDate]);
这将考虑您的时区。或者更好:dateformatter日历的时区 - 如果你不改变它,设备的默认设置是什么。