CoreData使用的默认NSTimeInterval

时间:2015-06-06 09:31:32

标签: ios core-data nsdate nstimeinterval

NSDate返回

CloudKit值。当我将核心数据中的日期存储为NSTimeInterval时,系统会选择哪种表示形式?我知道NSTimeInterval存储了自某个特定参考日期以来的秒数。但是这里会选择哪个参考日期?

mo.setValue(record.creationDate, forKey: "creationDate")

后来我必须将此日期与当前日期进行比较,因此我必须将其转换回NSDate,因此我必须使用其中一种NSDate timeIntervalSinceXXX方法。

我在docs中找到了这个:

  

日期和时间   NSManagedObject使用NSDate对象表示日期属性,并在内部将时间存储为自引用日期(具有GMT时区)以来的NSTimeInterval值。时区未明确存储 - 实际上您应该始终在GMT中表示核心数据日期属性,这样搜索在数据库中进行规范化。如果需要保留时区信息,则需要在模型中存储时区属性。这可能还需要您创建NSManagedObject的子类。

我没有说什么是参考

1 个答案:

答案 0 :(得分:0)

如文档和注释中所述,内部NSDate引用日期是2001年1月1日,这是Core Data在将NSDate对象序列化到数据库表示时内部使用的日期。

Wikipedia's article on epochNSDateCFDate都使用Cocoa纪元时间(至少可以追溯到1994年,在the OpenStep specifications中)。