什么是cocoaparsingISO8601date的正确方法?

我想parsingCocoa中的ISO8601date,iOS 4+和OSX 10.6+

已经有一些关于StackOverflow的问题,但在我看来, 没有一个包含很好的答案。 这是我认为是一个很好的答案:

  1. 答案应该指向支持ISO8601的代码。 这个代码应该在Xcode 4下为iOS 4+和OSX 10.6+编译干净。

  2. 代码应该支持所有可能的ISO8601date格式。

    请注意,这里有很多种可能性。 简单地回答NSDateFormatter一个或两个格式string不会削减它。

  3. 答案不应该是这个库 。 这是因为它充满了32位危险的假设,它比必要的复杂得多,而且不能用XCode4 / Clang编译。 底线:我不信任它!

谢谢你,同事Cocoa-ites。 我很高兴看到这里是否有真正的答案!

最好的方法是这个库 。 ☺

我应该在该页面上添加一个链接到Bitbucket仓库 ,其中包含更新的源代码(包括32位和Clang修复!),并有一个问题跟踪器。 如果您发现其他任何错误,请将其提交。

我也想知道你的意思是“比必要更复杂”。 正常使用非常简单:

 ISO8601DateFormatter *formatter = [[[ISO8601DateFormatter alloc] init] autorelease]; //Or, if you prefer, create it once in -init and own it until -dealloc NSDate *parsedDate = [formatter dateFromString:inString]; NSString *unparsedString = [formatter stringFromDate:inDate]; 

如果您需要更多信息(例如,保留时区),则可以切换为dateFromString:stringFromDate:用于较长方法之一。

如果你的意思是别的,我想听,所以我可以改善图书馆。