所以我收到的日期字符串如下所示:“2013-03-20T21:13:26-7:00”我从网络后端收到。我无法控制后端,只是一个fyi。
我的偏好是将日期格式化为:3:20下午9:13。
当我执行以下操作时
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *date = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];
date
为空。
我的第一个想法是日期字符串看起来很奇怪,也许我应该删除T和“-7:00”,因为“-7:00”会附加到我收到的每个日期,我就是不确定它是什么。
即使字符串看起来像@“2013-03-20 21:13:26”,date
仍为空。
我承认我不是格式化日期的专家,所以如果我能在这个问题上得到一些帮助,那就太棒了。
提前致谢!
答案 0 :(得分:14)
您必须将dateFormat设置为dateFormatter
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];
NSDate *date = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];
[dateFormatter setDateFormat:@"hh:mma 'at' MM/yy"];
NSString *dateString = [dateFormatter stringFromDate:date];
答案 1 :(得分:1)
设置dateFormatter
的日期格式,问题出在日期的最后一部分,其次你可以在日期格式中设置T,如下所示
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
NSDate *date = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];
答案 2 :(得分:0)
设置dateFormat,
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];