2013-05-10 125 views
-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 
+1

也許你應該告訴日期的格式。如果沒有,它很難知道 – pdrcabrod 2013-05-10 06:17:39

+0

@pdrcabrod mm:dd:yy hh:mm:ss – 2013-05-10 06:27:02

+0

當你使用:[NSDateFormatter localizedStringFromDate:[NSDate dateWithTimeIntervalSince1970:[theSection name]] dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterNoStyle];' ? – 2013-05-10 06:28:20

回答

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] 將日期轉換爲字符串,這使得難以將日期轉換爲不同的格式。該方法直接訪問日期值,並將其轉換爲所需的格式。

+1

@ S.J。馬丁的方法是正確的。這與我的一個(見http://stackoverflow.com/questions/16070597/doubts-on-concurrency-with-objects-that-c​​an-be-used-multiple-times-like-formatte)允許你提高性能; )。格式化器創建起來很昂貴。 +1一如既往,Martin – 2013-05-10 08:11:12

+0

@MartinR非常感謝你的幫助:),這個工作非常出色。 – 2013-05-10 10:28:55

+0

@MartinR請同時查看這個問題http://stackoverflow.com/questions/16482239/why-nspredicate-not-working – 2013-05-10 12:27:23

0
  1. 不關心格式,日期存儲在數據庫中。這是私人的。

  2. 假設[section name]返回一個字符串,您需要一個日期格式化程序,它可以理解格式的格式。 (看起來像UTC。)然後你需要一個日期格式化程序,它被設置爲輸出格式。將字符串放入第一個格式化程序中,取出日期,然後將日期放入第二個格式程序中。

+0

你可以在我的問題中看到我已經做到了,但問題仍然存在。 – 2013-05-10 07:49:04

相關問題