NSDate to String转换并在UILabel中显示

时间:2013-07-12 21:09:19

标签: ios nsstring uilabel nsdate nsdateformatter

我正在尝试从NSDate对象类型中获取字符串并将其显示在标签中。 这是我正在使用的代码,

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init] ;
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
//[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
NSDate *datey = [dateFormatter dateFromString:selectedDate];
NSString *labelData = [dateFormatter stringFromDate:datey];
dateLabel.Text = labelData;

其中selectedDate是一个包含yyyy-mm-dd格式的日期的字符串。 标签没有显示日期。但如果我尝试给它一个像@“someblah”这样的字符串,它就会显示出来。我哪里错了? 帮助赞赏。感谢

2 个答案:

答案 0 :(得分:2)

您的第dateLabel.Text行应为dateLabel.text

因此,您从日期字符串开始,将其转换为日期,然后使用相同的格式化程序将其转换回字符串。不是更容易使用:

dateLabel.text = selectedDate;

您极有可能尝试使用与格式不一致的日期字符串创建NSDate。例如,如果格式为@"yyyy-MM-dd"但您的selectedDate与该格式不同,则格式化程序将不返回NSDate。您可以通过将DateFormat设置为对selectedDate正确来避免这种情况,然后在解析后,更改所需输出的DateFormat。或者使用两个NSDateFormatter个实例。

答案 1 :(得分:1)

尝试指定特定格式而不是NSDateFormatLongStyle,例如

[dateFormatter setDateFormat:@"yyyy-MM-dd"];

我使用谷歌在2秒内找到了这个答案..(是的,这是一个暗示)