我需要将以下字符串转换为更易读的格式:
NSString *deadlineFromTable = @"2012-11-13T22:59:00.000Z";
我想将其转换为NSDate,因此我可以对其进行格式化。
我尝试了以下操作,但是当我尝试将NSString设置为UILabel(最后一行)时,我得到一个不兼容的指针错误,将NSString分配给NSDate:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *dateFromString = [dateFormatter dateFromString:deadlineFromTable];
self.deadlineLbl.text = dateFromString;
感谢您的帮助。
答案 0 :(得分:3)
您需要使用dateFormatter两次。一次用于解析,一次用于格式化字符串。
您无法直接将日期指定为标签文本。
yyyy-MM-dd'T'HH:mm:ss.Z
然后使用NSDate *date = [dateFormatter dateFromString:dedlineFromTable];
dd-MM-yyyy
然后使用NSString *text = [dateFormatter stringFromDate: date];
答案 1 :(得分:1)
您需要两个dateFormatters。
从您的输入字符串转换为日期,然后从该日期转换为您想要的标签格式。
您还需要更改日期格式化程序的格式,使其与您的字符串匹配...
NSDateFormatter *dateStringParser = [[NSDateFormatter alloc] init];
[dateStringParser setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.Z"];
NSDate *date = [dateStringParser dateFromString:deadlineFromTable];
NSDateFormatter *labelFormatter = [[NSDateFormatter alloc] init];
[labelFormatter setDateFormat:@"dd-MM-yyyy"];
self.deadlineLbl.text = [labelFormatter stringFromDate:date];
应该这样做。