2013-10-30 21 views
-2

我有一个字符串,其值为“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的是一个不同的类,其具有NSDate类型的lastPromotonDate。 在笔尖文件中,我有一个显示日期的插座,它绑定到lastPromotionDate

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

我可以知道这里有什么错误吗?什么必须做这样的日期显示格式为:13年11月11日

+1

为什么使用日期格式化程序在标签上显示字符串。如果你已经有日期的字符串值,只需使用[label setStringValue:yourString]; – Neha

+0

这包括一个服务器请求,其中有我们的日期。所以我们需要设置日期并将其显示在标签上。请让我知道,如果我们设置lastPromotionDate并将其绑定到文本字段,不会显示日期? –

+0

服务器的日期是字符串格式吗? – Neha

回答

0

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

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; 
+0

它没有工作。我试过这个。它仍然显示长格式。绑定导致任何问题?并且还会动态填充lastPromationDate。 –

+0

我编辑我的答案。我用毫米代替MM现在检查出来 –

+0

试过了。它不起作用。 –

0

试试这个: -

NSString *[email protected]"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); 
+0

无法工作。它仍然显示长格式。 –

+0

你可以在这里粘贴你的代码吗? –

+0

我需要检查你在合并上面的代码后如何实现? –

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”变量。

UPDATE:

既然你结合你的标签NSDate的值,它显示在它存在于NSDate的方式完整的日期。要以您的自定义格式检索该NSDate的值,您需要使用NSDateFormatter,它会将我们需要的NSDate的一部分写入到NSString中。

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

+0

它只是简单的。我使用特定格式设置日期,将其分配给nsdate类型的变量。显示日期的文本字段绑定到此变量。 –

+0

检查更新的答案 – Neha

+0

我只是想知道如果我们将NSDate变量绑定到文本字段,它会工作。看起来不会。这是总结的权利? –