0

我需要将以下字符串转换为可读性更好的格式:

NSString *deadlineFromTable = @"2012-11-13T22:59:00.000Z";

我想把它转换成 NSDate,所以我可以格式化它。

我尝试了以下操作,但是当我尝试将其设置为 UILabel(最后一行)时,将 NSString 分配给 NSDate 时出现不兼容的指针错误:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];

NSDate *dateFromString = [dateFormatter dateFromString:deadlineFromTable];
self.deadlineLbl.text = dateFromString;

谢谢你的帮助。

4

2 回答 2

3

您需要使用 dateFormatter 两次。一次用于解析,一次用于格式化字符串。
您不能直接将日期指定为标签文本。

  1. 设置格式:yyyy-MM-dd'T'HH:mm:ss.Z然后使用
    NSDate *date = [dateFormatter dateFromString:dedlineFromTable];
  2. 设置格式:dd-MM-yyyy然后使用
    NSString *text = [dateFormatter stringFromDate: date];
于 2012-11-13T10:52:32.803 回答
1

您需要两个 dateFormatter。

一个从您的输入字符串转换为日期,然后一个从该日期转换为您想要的标签格式。

您还需要更改日期格式化程序的格式,使其与您的字符串匹配...

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];

那应该这样做。

于 2012-11-13T10:53:29.203 回答