我想解析
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 :.
如果你的意思是别的,我想听听,所以我可以改进图书馆.