我正在尝试使用以下格式转换NSString
:
Tue, 27 Aug 2013 22:22:04 EDT
到NSDate
但我总是得到nil
。
这是我的尝试
// This is my pub date in string**
NSString *pubDate = @"Tue, 27 Aug 2013 22:22:04 EDT";
NSArray *tempArr =[ pubDate componentsSeparatedByString:@" "];
NSMutableArray *tempArrFinal = [NSMutableArray arrayWithArray:tempArr];
[tempArrFinal removeLastObject];
[tempArrFinal removeObjectAtIndex:0];
pubDate = [tempArrFinal componentsJoinedByString:@" "];
在将其传递给日期格式化程序之前,我将NSString
转换为格式,如下所示:27 Aug 2013 22:22:04
删除字符串的前n个组成部分。我这样做是因为原始格式我得到的结果相同。
我正在尝试将其转换为NSDate
:
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"MMM dd yyyy HH:mm:ss"];
[formatter setDateStyle:NSDateFormatterLongStyle];
articleDate = [formatter dateFromString:pubDate];
答案 0 :(得分:2)
您必须根据日期格式设置NSDateFormatter
如果您使用此类型的日期27 Aug 2013 22:22:04
NSString *string=@"27 Aug 2013 22:22:04";
NSDateFormatter *df=[[NSDateFormatter alloc]init];
[df setDateFormat:@"dd MMM yyyy HH:mm:ss"];
NSDate *date=[df dateFromString:string];
或强>
如果你使用Tue, 27 Aug 2013 22:22:04 EDT
这种类型的日期
试试这个
NSString *string=@"Tue, 27 Aug 2013 22:22:04 EDT";
NSDateFormatter *df=[[NSDateFormatter alloc]init];
[df setDateFormat:@"E, dd MMM yyyy HH:mm:ss zz"];
NSDate *date=[df dateFromString:string];