我有一些客观的代码我正在从iPhone转换到iPad。 CFGregorianDate用于日期函数。我从未使用它,更喜欢使用NSDate。
我想把日期和格式化,所以我得到了完整的月份名称,使用格式字符串&#34; MMMM&#34;,我似乎无法使用CFGregorianDate。< / p>
两者之间有什么区别,它的用法有何不同?
答案 0 :(得分:1)
来自docs:
CFDate与其Cocoa Foundation对手NSDate进行“免费桥接”。这意味着Core Foundation类型在函数或方法调用中可与桥接的Foundation对象互换。换句话说,在您看到NSDate *参数的方法中,您可以传入CFDateRef,并且在您看到CFDateRef参数的函数中,您可以传入NSDate实例。这也适用于NSDate的具体子类。
所以,用法没有区别,真的。主要区别在于CFDate及其子类是遗留类型。
但是,正如已经指出的那样,CFGregorianDate
与CFDate
极为不同。它不存储时间戳,而是将年,月,日,小时和秒存储为单独的整数。
所以最好的办法是创建一个类似cfGregorianToNSDate:
的方法,在其中解析这些整数并解释一个新的NSDate
对象。