日期未在nib文件中正确显示

时间:2013-10-30 06:20:38

标签: objective-c macos cocoa nsdate nsdateformatter

我有一个价值@“15/11/13”的字符串。我需要在nib文件的标签上显示相同的内容。 我使用以下代码来显示它

NSDateFormatter * df1 = [[NSDateFormatter alloc] init];
[df1 setDateFormat:@"yyyy-mm-dd"];
[df1 setDateStyle:NSDateFormatterShortStyle];
[df1 setTimeStyle:NSDateFormatterNoStyle];
[profile1 setLastPromotionDate:[df1 dateFromString:@"11/11/13"]];

Profile1是另一个类lastPromotonDate NSDate的类。 在nib文件中,我有一个显示日期的插座,该日期绑定到lastPromotionDate

当我运行该应用时,显示的日期为 2013年11月11日星期一12:00:00 AM 印度标准时间。

我能知道这里的错误是什么吗?必须做什么才能使日期以这种格式显示:11/11/13

4 个答案:

答案 0 :(得分:0)

NSString *str = @"15/11/13";

// here we create NSDateFormatter object for change the Format of date..

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init] ;

// here set format of date which is in your output date (means above str with format)

[dateFormatter setDateFormat:@"yy/mm/dd"];

// here you can fetch date from string with define format

NSDate *date = [dateFormatter dateFromString: str];

dateFormatter = [[NSDateFormatter alloc] init] ;

// here set format which you want..

[dateFormatter setDateFormat:@"dd/mm/yy"];

NSString *convertedString = [dateFormatter stringFromDate:date];

//here convert date in NSString
NSLog(@"Converted String : %@",convertedString);

rofile1.text = convertedString;

答案 1 :(得分:0)

试试这个: -

NSString *dateStr=@"11/11/13";
NSDateFormatter *format=[[[NSDateFormatter alloc]init]autorelease];
[format setDateFormat:@"dd/mm/yy"];
NSDate *dt=[format dateFromString:dateStr];
NSString *str=[format stringFromDate:dt];
NSLog(@"%@",str);

答案 2 :(得分:0)

为什么不把它设置为:

NSString *str = @"15/11/13";
[label setStringValue: str];

更新:

要将此字符串转换为相同格式的NSDate,请使用:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd/mm/yy"];
NSDate * date = [df dateFromString:str];

要从NSDate中获取日期的字符串值,请使用:

NSString *dateStr = [df stringFromDate: date];

您也可以使用此dateStr将标签文本设置为

[label setStringValue: dateStr];

或将标签绑定到“dateStr”。 (不要将它绑定到NSDate类型的“日期”,我认为这是你出错的地方。)

为服务器请求使用NSDate类型的“date”变量。

更新:

由于您将标签绑定到NSDate值,因此它会以NSDate中显示的方式显示完整日期。要以自定义格式检索该NSDate的值,您需要使用NSDateFormatter,它将我们格式化所需的NSDate部分写入NSString。

此外,如果我们将NSString转换为NSDate,并不意味着日期格式化程序会将NSDate保存为我们的自定义格式,日期格式化程序的格式指定字符串的格式,以便NSDate可以从中读取正确的日期自定义格式化字符串。但NSDate将始终以自己的格式保存日期值。

答案 3 :(得分:0)

我们在库中的对象下有一个名为 DateFormatter 的东西。如果标签位于笔尖的列表视图中,我们可以将其拖放到文本单元格下。 此数据格式化程序将日期格式转换为用于在UI中显示的字符串值。