objective-c – 在可可中解析ISO8601日期的正确方法是什么?

我想解析 Cocoa中的ISO8601日期,包括iOS 4和OSX 10.6

StackOverflow上已经有一些关于这方面的问题,但在我看来,它们都不包含好的答案.以下是我认为构成一个好答案的内容

>答案应该指向支持ISO8601的代码.对于iOS 4和OSX 10.6,此代码应在XCode 4下干净地编译.
>代码支持所有可能的ISO8601日期格式.

请注意,这里有很多种可能性.简单地用NSDateFormatter的一个或两个格式字符串回答不会削减它.
>答案不应该是this library.那是因为它充满了危险的32位假设,它比必要复杂得多,并且它不能用XCode4 / Clang编译清理.一句话:我完全不相信它!

谢谢,同胞Cocoa-ites.我很高兴知道这里是否有真正的答案!

解决方法

最好的方法this library.☺

我应该在该页面添加一个链接the Bitbucket repo,其中包含较新的源代码(包括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 :.

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

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...