Dateformatter为特定日期字符串返回Nil

时间:2014-01-16 06:43:10

标签: ios objective-c nsdateformatter

我正在使用SeatGeek API,它们的日期以下列格式返回:

"date_tbd" = 0;
"datetime_local" = "2014-02-08T19:15:00";
"datetime_tbd" = 0;
"datetime_utc" = "2014-02-09T01:15:00";

我正在尝试将它们转换为更易读的内容,例如1月18日。我的代码如下:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss"];

NSDate *date = [dateFormatter dateFromString:fullDateTime];
[dateFormatter setDateFormat:@"Mmm dd"];

cell.eventDate.text = [dateFormatter stringFromDate:date];

但是,日期为空。因此,eventDate标签显示为空白。

有什么想法?我发现自己经常与这些DateFormatters斗争。感谢。

1 个答案:

答案 0 :(得分:3)

字母T应按字面匹配,因此必须附上 在第一个日期格式的单引号中:

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];

第二种日期格式应为

[dateFormatter setDateFormat:@"MMM dd"];

使用MMM代替Mmm作为月份缩写。