美好的一天,
我有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
致电后, dateFromString
nil 。
是否有其他人遇到过他们的日期无法转换为NSDates
的情况?
谢谢,
答案 0 :(得分: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];
我怀疑你可以更详细地找到为什么它使用这个函数的亚秒字段失败,因为看起来它做同样的事情,但返回错误信息:
无论如何,希望这会让你再次前进。
答案 1 :(得分:1)
您应该在小数位置尝试小写“s”,如下所示:
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.ssssss"]
它对我有用。