我的格式为 NSString 格式,格式如下:
2012-03-27 14:43:22 +0000 //this is a string
我想要的是以某种方式将其转换为:March 27
所以我认为这样做的方法是将此字符串转换为NSDate,然后将新的NSDate格式化为我想要的格式,然后返回字符串,但我得到空输出:
NSString *date=[sectionInfo name];
NSLog(@"date:%@", date);
NSDateFormatter *k= [[NSDateFormatter alloc] init];
[k setDateFormat:@"yyyy-mm-DD hh:mm:ss a"];
NSDate *d=[k dateFromString:date];
NSLog(@"%@", d);
NSDateFormatter *df = [NSDateFormatter new];
[df setDateFormat:@"MMMM dd"];
NSString *dateString=[df stringFromDate:d];
NSLog(@"dateString:%@", dateString);
输出:
date:2012-03-28 14:43:22 +0000
(null)
dateString:(null)
我做错了什么?
答案 0 :(得分:1)
我猜您的格式字符串应为"yyyy-MM-dd HH:mm:ss Z"
此外,请尝试使用getObjectValue:forString:range:error:
方法而不是dateFromString:
,并查看返回的错误。
答案 1 :(得分:1)
您需要以您的格式使用大写HH,并将a更改为z,如下所示:
[k setDateFormat:@"yyyy-mm-DD HH:mm:ss z"];