0

我有一张包含“名称”和“日期”列的表

我希望日期以“dd/MM/yy”格式显示,但显示为“2012 年 4 月 13 日星期五 12:00:00 AM 印度标准时间”。

我有以下代码:

人.h

@interface Person : NSObject{

    NSString *name;
    NSDate *date;
}

@property(retain) NSString *name;

@property(retain) NSDate *date;

人.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 [tableView reloadData] 中的所有条目以更新表视图后,将 Person 对象添加到 arrayController 中。

但在表格中显示“2012 年 4 月 13 日星期五 12:00:00 AM 印度标准时间”

请提出任何解决方案。

4

1 回答 1

1

看起来您正在使用基于单元格的 NSTableView。

如果您想通过代码实现此目的:

你应该实现 NSTableViewDelegate 方法:-tableView:dataCellForTableColumn:row: 在你创建了一个 NSCell 实例之后,为这个单元格实例设置一个格式化程序(创建一个 NSDateFormatter 实例并设置它),使用[NSCell setFormatter:]方法。

通过 IB:

搜索 NSDateFormatter,然后将其拖放到应显示此日期的单元格上。它还将为您提供修改日期格式化程序行为的选项,但您希望能够更改显示格式,因为它是从区域设置中获得的。

于 2013-11-08T15:52:07.990 回答