-2
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    id <NSFetchedResultsSectionInfo> theSection = [[self.fetchedResultsController sections] objectAtIndex:section];

    //return [[[theSection name]componentsSeparatedByString:@"+"]objectAtIndex:0];

    return [NSDateFormatter localizedStringFromDate:[NSDate dateWithTimeIntervalSince1970:[theSection name]] dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterNoStyle];
}

我想用来NSDateFormatter显示从核心数据中获取的日期时间并根据需要显示。

更新 1

NSDateFormatter *f = [[NSDateFormatter alloc]init];
[f setDateFormat:@"dd:mm:yy hh:mm"];
NSDate *d = [f dateFromString:[theSection name]];

return [f stringFromDate:d];

这也不起作用:(

更新 2

NSLog(@"TEST=>%@",[theSection name]);

显示2013-05-09 11:58:28 +0000但在数据库中它的存储是这样的

389773826.504289
4

2 回答 2

3

这应该有效:

NSDateFormatter *f = [[NSDateFormatter alloc]init];
[f setDateFormat:@"MM:dd:yy hh:mm"];

// The current section:
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.controller sections] objectAtIndex:section];
// One arbitrary object in this section:
NSManagedObject *obj = [[sectionInfo objects] objectAtIndex:0];
// The date value of this object (and all objects of this section):
NSDate *date = [obj valueForKey:@"date"]; // <-- use your "sectionNameKeyPath" here

return [f stringFromDate:date];

原因:您使用日期属性来分割表格视图。[sectionInfo name] 将日期转换为字符串,这使得将日期转换为其他格式变得困难。这种方法直接访问日期值,并将其转换为所需的格式。

于 2013-05-10T07:49:59.340 回答
0
  1. 不关心格式,日期存储在数据库中。这是私人的。

  2. 假设 [section name] 返回一个字符串,您需要一个可以理解格式的日期格式化程序。(看起来像 UTC。)然后你需要一个日期格式化程序,它被设置为输出格式。将字符串放入第一个格式化程序,取出日期,然后将日期放入第二个格式化程序。

于 2013-05-10T07:43:14.013 回答