NSDate
返回 CloudKit
值。当我将核心数据中的日期存储为NSTimeInterval
时,系统会选择哪种表示形式?我知道NSTimeInterval
存储了自某个特定参考日期以来的秒数。但是这里会选择哪个参考日期?
mo.setValue(record.creationDate, forKey: "creationDate")
后来我必须将此日期与当前日期进行比较,因此我必须将其转换回NSDate
,因此我必须使用其中一种NSDate timeIntervalSinceXXX
方法。
我在docs中找到了这个:
日期和时间 NSManagedObject使用NSDate对象表示日期属性,并在内部将时间存储为自引用日期(具有GMT时区)以来的NSTimeInterval值。时区未明确存储 - 实际上您应该始终在GMT中表示核心数据日期属性,这样搜索在数据库中进行规范化。如果需要保留时区信息,则需要在模型中存储时区属性。这可能还需要您创建NSManagedObject的子类。
我没有说什么是参考
答案 0 :(得分:0)
如文档和注释中所述,内部NSDate
引用日期是2001年1月1日,这是Core Data在将NSDate
对象序列化到数据库表示时内部使用的日期。
见Wikipedia's article on epoch。 NSDate
和CFDate
都使用Cocoa纪元时间(至少可以追溯到1994年,在the OpenStep specifications中)。