-4

我正在尝试NSString使用以下格式将其转换为: Tue, 27 Aug 2013 22:22:04 EDTNSDate 我总是得到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];
4

1 回答 1

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];
于 2013-08-28T11:58:24.570 回答