2011-12-14 10 views
2

この文字列「2011-11-23T17:59:00Z」をNSDateに変換しようとしています。iOSのISO8601時刻を解析する際のトラブル

多くの人がこの問題を抱えていますが、誰もがやや異なる形式です。私は解決策をハックすることができませんでした。

私のようなコードを試してみた:

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]; 

日付ストリングはいつも戻ってくるNULL

答えて

3

NSDateFormatter stringFromDateはNSDateオブジェクトを取り、あなたはそれを文字列を渡しています。 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html

NSDateFormatter 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); 

出力::あなたはdateFromStringを使用している場合

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

この答えは間違っています。フォーマット文字列は 'Z'を引用するべきではありません。 – rmaddy

+0

私は引用符なしで答えを更新しましたZ – bryanmac

関連する問題