2015-06-06 6 views
0

NSDate значение возвращается CloudKit. Какое представление будет выбирать система, когда я храню дату в Core Data как NSTimeInterval? Я знаю, что NSTimeInterval хранит количество секунд с некоторой конкретной контрольной даты. Но какая контрольная дата будет выбрана здесь?По умолчанию NSTimeInterval, используемый CoreData

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

последнего на меня, чтобы сравнить эту дату с текущей датой, так что я должен преобразовать его обратно в NSDate, так что я должен использовать один из методов NSDate timeIntervalSinceXXX.


Я нашел это в docs:

Даты и времена NSManagedObject представляет собой дату атрибутов с использованием объектов NSDate и хранит раз внутренне как значение NSTimeInterval после отчетной даты (который имеет временную зону от GMT). Часовые пояса явно не хранятся - действительно, вы всегда должны указывать атрибут даты данных ядра в GMT, таким образом, поиск в норме нормализуется в базе данных. Если вам необходимо сохранить информацию о часовом поясе, вам необходимо сохранить атрибут часового пояса в вашей модели. Это может потребовать от вас создать подкласс NSManagedObject.

Я ничего не говорю, что это ссылка

+0

Я бы угадал 'dateWithTimeIntervalSince1970:' Все остальное могло бы вызвать проблемы. – luk2302

+0

phew, я не знал об этом;) Я буду google немного ... – luk2302

+0

Вы видели http://stackoverflow.com/questions/6841579/why-is-an-nsdate-in-a-core -data-managed-object-convert-to-nstimeinterval? – luk2302

ответ

0

Как указано в документации и в комментариях, внутренняя дата NSDate ссылки 1 января 2001, что и используются Core Data внутри при сериализации NSDate объектов к представлению базы данных.

См. Wikipedia's article on epoch. NSDate и CFDate оба используют время эпохи какао (которое датируется, по меньшей мере, до 1994 года, в the OpenStep specifications).

Смежные вопросы