如何在Core Data中存储NSDate?

时间:2015-04-17 09:32:35

标签: ios core-data

在生成Core Data子类时,我检查在Core Data存储中使用原始数据类型。

enter image description here

我应该从NSTimeInterval转换哪个NSDate代表?或者无关紧要,只需在读/写相同的托管对象属性时正确使用?

我更喜欢使用:mo.creationDate = date.timeIntervalSinceReferenceDate

3 个答案:

答案 0 :(得分:2)

iOS的参考日期从2001年1月1日起,GMT Unix时间戳参考日期计算自:1970年1月1日,UTC

如果这是一个完全脱机的应用程序,您可以使用timeIntervalSinceReferenceDate并直接存储该值。

但是,如果您要与服务器同步,那么通常最好将数据作为unix时间戳发送到服务器。因为桌面使用unix time Stamp作为默认值。

因此,在第二种情况下,您可以选择将日期直接保存为UnixTimeStamp,并使用Model Class中的getter将其转换为本地使用(请参阅:@VladZ),或者您可以将其保存为iOS的参考日期并转换每次将它发送到服务器时都会发送到UnixTimeStamp。

答案 1 :(得分:1)

使用 - timeIntervalSince1970并将此值保存在CoreDate

mo.creationDate = [NSNumber numberWithDouble:timeInterval];

答案 2 :(得分:0)

您正在添加时间间隔,它不是NSDate类型的对象。

尝试添加具有所需时间间隔的NSDate:

Check this out