在日期排序fetchrequest

时间:2012-10-08 17:06:09

标签: iphone objective-c ios ipad core-data

我有一个核心数据库,里面装满了来自json webservice的数据。 但我对日期有疑问。这个日期就像一个字符串。所以我想做的第一件事就是将这个字符串转换为NSDate。第二件事是以正确的格式转换此NSDate,以便我可以在日期添加排序描述符。

这就是我目前在核心数据库中存储日期的方式。

 NSDateFormatter* df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"MM/dd/yyyy"];
    NSDate* d = [df dateFromString:[genkInfo objectForKey:CALENDAR_DATE]];

    kalender.date              = d;

以及我如何获取数据。

- (void)getKalender // attaches an NSFetchRequest to this UITableViewController
{
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Kalender"];
    request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]];

    self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
                                                                        managedObjectContext:self.genkDatabase.managedObjectContext
                                                                          sectionNameKeyPath:nil
                                                                                   cacheName:nil];

}

知道怎么做吗?

亲切的问候并提前感谢

修改

当我执行以下日志时。我得到每个记录正确的日期和空值

  NSLog(@"date  = %@",kalender.date);

    2012-10-08 19:17:12.125 RacingGenk[596:c07] date  = 2013-09-02 22:00:00 +0000
    2012-10-08 19:17:12.125 RacingGenk[596:c07] date  = (null)

1 个答案:

答案 0 :(得分:1)

正如讨论中所述,日期格式化程序使用的格式与Web服务发送的日期格式不匹配。使用

[dateFormatter setDateFormat:@"dd/MM/yyyy"]

修复了问题。