什么是cocoaparsingISO8601date的正确方法?
我想parsingCocoa中的ISO8601date,iOS 4+和OSX 10.6+
已经有一些关于StackOverflow的问题,但在我看来, 没有一个包含很好的答案。 这是我认为是一个很好的答案:
-
答案应该指向支持ISO8601的代码。 这个代码应该在Xcode 4下为iOS 4+和OSX 10.6+编译干净。
-
代码应该支持所有可能的ISO8601date格式。
请注意,这里有很多种可能性。 简单地回答
NSDateFormatter
一个或两个格式string不会削减它。 -
答案不应该是这个库 。 这是因为它充满了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:
用于较长方法之一。
如果你的意思是别的,我想听,所以我可以改善图书馆。