2009-10-16 2 views
6

良い日、NSDateFormatter dateFromStringは特定の日付文字列を解析しません

私は変換しようとしている特定の文字列が好きではないように見えるNSDateFormatterを持っています。この特定のインスタンスは

です。
2009-10-16T09:42:24.999605 

他のすべての日付は同じ形式であり、解析できます。

NSDatestringを変換するコードは次のとおりです。呼び出し後

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSSSS"]; 

[order setModifiedAtDate:[dateFormatter dateFromString:[orderDataDictionary valueForKey:@"ModifiedAt"]]]; 

order.ModifiedAtDate nilです。

他の誰かが日付がNSDatesに変換できなかったケースを知りましたか?

ありがとう、

答えて

7

私はフォーマッタからの秒以下のフィールドを削除することで解析する日付を取得することができました:

NSString *test = @"2009-10-16T09:42:24.999605"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 
NSDate *testOut = [dateFormatter dateFromString:test]; 

私はそれが秒未満で失敗した理由を詳細に調べることができます疑います

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/instm/NSDateFormatter/getObjectValue:forString:range:error

それは同じことを行いように見えますが、エラーメッセージを返すように、この機能を使用してフィールドいずれにしても、これはあなたがもう一度行くことを願っています。

1

あなたはこのように、小数点以下の場所に小文字の "s" を試してみてください:

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.ssssss"] 

それは私のために働きました。

関連する問題