Ios6 另一个NSDateFormatter问题

Ios6 另一个NSDateFormatter问题,ios6,nsdate,nsdateformatter,Ios6,Nsdate,Nsdateformatter,在阅读了文档之后,下面的案例似乎应该有效,但结果总是零。(这是针对iOS sdk 6的) 有什么见解吗 提前感谢您的帮助。试试这个怎么样。如果您的日期字符串未按我的猜测进行定位,即使是苹果公司也建议您可以使用以下内容: struct tm tmDate; const char *formatString = "%Y-%m-%dT%H:%M:%S%z"; strptime_l(releaseDate, formatString, & tmDate, NULL); date = [NSDa

在阅读了文档之后,下面的案例似乎应该有效,但结果总是零。(这是针对iOS sdk 6的)

有什么见解吗


提前感谢您的帮助。

试试这个怎么样。如果您的日期字符串未按我的猜测进行定位,即使是苹果公司也建议您可以使用以下内容:

struct tm tmDate;
const char *formatString = "%Y-%m-%dT%H:%M:%S%z";

strptime_l(releaseDate, formatString, & tmDate, NULL);
date = [NSDate dateWithTimeIntervalSince1970: mktime(& tmDate)];

NSLog(@"Result date: %@", date);

但发布日期必须是C字符串,如
const char*releaseDate=“2012-10-22T00:00:00-07:00”
,也可以通过
NSString
UTF8String
方法获得。对这些文件的重新阅读揭示了我的误解:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *releaseDate = @"2012-10-22T00:00:00-07:00";
NSDate *date = nil;

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
date = [dateFormatter dateFromString:releaseDate];

NSLog(@"Result date: %@", date);
NSLog(@"Result string: %@", [dateFormatter stringFromDate:date]);
“T”必须用撇号括起来,时区的“ZZZZZ”已经包含了“-”,因此必须删除它


现在它可以正常工作了。

谢谢。我试试看。不过,我还是不明白为什么文档格式不起作用!
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *releaseDate = @"2012-10-22T00:00:00-07:00";
NSDate *date = nil;

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
date = [dateFormatter dateFromString:releaseDate];

NSLog(@"Result date: %@", date);
NSLog(@"Result string: %@", [dateFormatter stringFromDate:date]);