2009-10-16 80 views
6

好日子,NSDateFormatter dateFromString不会解析特定日期字符串

我有一个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.ModifiedAtDatedateFromString调用之后。

是否有其他人遇到过他们的日期无法转换为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"] 

它为我工作。