2014-01-22 203 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