字符串到NSDate然后回到字符串

时间:2012-03-28 15:03:26

标签: iphone objective-c ios

我的格式为 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)

我做错了什么?

2 个答案:

答案 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"];