我不明白为什么会有工作日。它会造成日期不一致的可能性。你对“20130412 Tuesday”有什么期待?(未来读者注意:20130412 实际上是星期五)我检查了http://userguide.icu-project.org/formatparse/datetime并没有发现禁止添加星期几,但这似乎是个坏主意大部头书。
但是,NSDateFormatter 的行为似乎不正确。我在 iOS 6.1 模拟器和 OS X 10.8.3 上进行了测试,在两个平台上都得到了相同的结果。我什至扩展了一点,添加
id longResult;
NSError *error;
NSRange range = NSMakeRange(0, testDate.length);
if (![df getObjectValue:&longResult forString:testDate range:&range error:&error]) {
NSLog(@"error: %@ reason:%@", error.localizedDescription, error.localizedFailureReason );
}
NSLog(@"result: %@", longResult);
NSLog(@"%@", NSStringFromRange(range));
在您的代码下方并生成
2013-04-10 16:45:27.921 date formatter fun ios[47350:c07] test: 20130412 Friday, result: 1999-12-31 07:00:00 +0000
2013-04-10 16:45:27.922 date formatter fun ios[47350:c07] result: 1999-12-31 07:00:00 +0000
2013-04-10 16:45:27.922 date formatter fun ios[47350:c07] {0, 15}
它正在尝试解析,返回 YES(成功解析),但将错误的答案放入结果中。