如何解决在可可中解析ISO8601日期的正确方法是什么?
| 我想在Cocoa中解析ISO8601日期,适用于iOS 4+和OSX 10.6+ 在StackOverflow上已经有一些关于此的问题,但是在我看来,这些问题都没有一个好的答案。我认为这是一个很好的答案: 答案应该指向支持ISO8601的代码。对于iOS 4+和OSX 10.6+,此代码应在XCode 4下完全编译。 该代码应支持所有可能的ISO8601日期格式。 请注意,这里有很多可能性。只需用一两个格式的字符串回答NSDateFormatter
就不会削减它。
答案不应该是这个库。那是因为它充满了危险的32位假设,它比必要的要复杂得多,并且不能使用XCode4 / Clang进行干净的编译。底线:我一点都不相信!
谢谢,可可同胞们。我很高兴知道这里是否有真正的答案!
解决方法
最好的方法是该库。 ☺
我应该在该页面上添加到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:
切换为较长的方法之一。
如果您还有其他意思,我想听听,以便改进图书馆。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。