2014-01-22 158 views
-1

我无法通过NSDateFormatter从字符串解析日期。日期字符串是@"2014-01-21T20:00:36+04:00"。我试图使用这种格式字符串:@"yyyy-MM-ddTHH:mm:ss",但它不起作用。请帮帮我。无法从字符串解析日期

完整的代码是:

@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-ddTHH:mm:ssZ"; 
NSDate * date = [dateFormatter dateFromString:dateString]; 
+0

查看[here](http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns)查看日期格式模式。也可以参见[这个问题](http://stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-with-the-nsdateformatter-locale-feature)咬你,如果你不注意。 –

+1

而大多数人把T放在单引号中,尽管我不确定这是否有必要。 –

+1

顺便说一下,这可能是最常见的问题列表中的#3,所以要好起来,否则我们会投票给你,并以愚蠢的方式结束这个问题。 –

回答

1

附加将z作为你时区包括

+0

它也行不通。 –

+1

在时区使用ZZZZZ - 这是一个昏昏欲睡的。 –

+0

ZZZZ和ZZZZZ不起作用... –

0

http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns

NSString *dateString = @"2014-01-21T20:00:36+04:00"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 

dateFormat.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZZZZZ"; 
NSDate *date = [dateFormat dateFromString:dateString]; 

NSLog(@"Parsed date is %@", date); 

继上产生以下输出,似乎是正确的

Parsed date is 2014-01-21 16:00:36 +0000