1

我的核心数据实体有一个日期字段,我可以将其输出到 UITableViewCell,它的输出如下:

日期

我想做的是更改此日期格式,使其更具人类可读性,例如

10 月 19 日星期五 14:44

或者

19/10/2012 14:44

我如何在 Objective-C 中做到这一点?我想 NSDate 有一个格式化程序类,但是如何将提取的核心数据字符串转换为 NSDate?

4

2 回答 2

4

以上答案都不起作用,即使我尝试将核心数据对象转换为 NSDate 它仍然不会执行转换。我最终这样做了:

// Make a date formatter which corresponds exactly with the format of the date in core data
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];

// Get the date from core data
NSString *dateStr = [[object valueForKey:@"date"] description];

// Parse from string to date
NSDate *date = [dateFormatter dateFromString:dateStr ];

// Set the date formatter to the format that I actually want
[dateFormatter setDateFormat:@"dd/MM/yy HH:mm"];

// Set the text on the date label
cell.dateLabel.text = [dateFormatter stringFromDate:date];
于 2012-10-25T10:43:41.943 回答
1

试试这个方法:

它可能需要针对语言环境进行调整,我没有测试它,因为我没有一台能够与我一起编译代码的机器。

- (NSString *)dateAsString:(NSDate *)theDate {

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateStyle:NSDateFormatterLongStyle]; 
[df setTimeStyle:NSDateFormatterNoStyle];

return  [df stringFromDate:theDate];
}
于 2012-10-19T15:26:47.563 回答