6

良い一日、

変換しようNSDateFormatterとしている特定の文字列が気に入らないようです。この特定のインスタンスは

2009-10-16T09:42:24.999605

私の他のすべての日付は同じようにフォーマットされており、解析できます。

stringを に変換するコードを次に示しNSDateます。

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です。dateFromString

日付を に変換できないケースに遭遇した人はいNSDatesますか?

ありがとう、

4

2 に答える 2

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 :

いずれにせよ、うまくいけば、これでまた元気になれるでしょう。

于 2009-10-18T21:32:22.440 に答える
1

次のように、小数点以下の小文字の「s」を試してください。

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

それは私のために働いた。

于 2012-12-15T01:59:11.467 に答える