iOS中解析ISO8601时间的问题

iOS中解析ISO8601时间的问题,ios,objective-c,nsdate,Ios,Objective C,Nsdate,我正在尝试将字符串“2011-11-23T17:59:00Z”转换为NSDate 我见过很多人有这个问题,但每个人都有一个稍微不同的格式。我还没找到解决办法 我尝试过以下代码: NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; dateFormat.timeStyle = NSDateFormatterFullStyle; [dateFormat setDateFormat: @"yyyy-MM-dd'T'HH:mm:ss

我正在尝试将字符串“2011-11-23T17:59:00Z”转换为NSDate

我见过很多人有这个问题,但每个人都有一个稍微不同的格式。我还没找到解决办法

我尝试过以下代码:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
dateFormat.timeStyle = NSDateFormatterFullStyle;
[dateFormat setDateFormat: @"yyyy-MM-dd'T'HH:mm:ss'Z'"];
NSString* date = ""2011-11-23T17:59:00Z"";
NSString *dateString = [dateFormat stringFromDate: date]; 

dateString始终返回NULL

NSDateFormatter stringFromDate接受NSDate对象,并向其传递字符串。

请尝试NSDateFormatter dateFromString

如果使用dateFromString:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat: @"yyyy-MM-dd'T'HH:mm:ssZ"];
NSString* dateStr = @"2011-11-23T17:59:00Z";
NSDate *date = [dateFormat dateFromString:dateStr];

NSLog(@"date: %@", date);
产出:

2011-12-14 00:34:57.587 Craplet[440:707] date: 2011-11-23 22:59:00 +0000

这个答案是不正确的。格式字符串不应引用
Z