NSDateFormatter不会格式化奇怪的datestring
所以我有一个我收到的datestring,看起来像这样:“2013-03-20T21:13:26-7:00”,我从networking后端收到。 我无法控制后端,只是一个fyi。
我的意愿是将date格式化为这样:9:13 pm at 3/20。
当我做以下
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSDate *date = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];
date
为空。
我的第一个想法是,datestring看起来很奇怪,也许我应该删除T和“-7:00”,因为“-7:00”被附加到我收到的每一个date,我不知道是什么那是为了。
即使在string看起来像@“2013-03-20 21:13:26”, date
仍为空。
我承认在格式date我不是专业人士,所以如果我能在这个问题上得到一些帮助,那将是很棒的。
提前致谢!
您必须将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];
设置dateFormatter
的date格式,你的问题在于date的最后部分,其次你可以在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"];
设置dateFormat,
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];