我有一个包含“name”和“date”列的表
我希望日期以“dd / MM / yy”格式显示,但它显示为“2012年4月13日星期五12:00:00印度标准时间”。
我有以下代码:
Person.h
@interface Person : NSObject{
NSString *name;
NSDate *date;
}
@property(retain) NSString *name;
@property(retain) NSDate *date;
Person.m
#import "Person.h"
@implementation Person
@synthesize name;
@synthesize date;
- (id)init {
self = [super init];
self.date = [NSDate date];
return self;
}
- (void)dealloc {
[name release];
[date release];
[super dealloc];
}
现在,在向表中添加数据时,我编写了以下代码
Person *data = [Person new];
[data setName:@"abc"];
NSString *dateStr = @"13/04/12";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yy"];
NSDate *date = [dateFormat dateFromString:dateStr];
[data setDate:date];
[arrayController addObject:data];
[data release];
arrayController是NSArraycotroller。 在nstable中添加所有条目后,将Person对象添加到arrayController中 [tableView reloadData]更新表视图。
但在表格中显示“2012年4月13日星期五上午12:00:00印度标准时间”
请建议任何解决方案。
答案 0 :(得分:1)
看起来您正在使用基于单元格的NSTableView。
如果您想通过以下代码实现此目的:
您应该实现NSTableViewDelegate方法:-tableView:dataCellForTableColumn:row:
在创建NSCell实例后,将格式化程序设置为此单元格实例(创建NSDateFormatter的实例并进行设置),使用[NSCell setFormatter:]
方法。
通过IB:
搜索NSDateFormatter,然后只需拖动&放下单元格,该单元格应显示此日期。它还会为您提供修改日期格式化程序行为的选项,但您希望能够更改显示格式,因为它是从区域设置中获取的。