После прочтения этого замечательного учебника по предварительной сборке базы данных sqlite для использования Core Data я все еще застрял в столбцах datetime. Я опубликовал свой вопрос, чтобы попытаться получить некоторую помощь, потому что я застрял на этом.
Мое приложение использует предварительно созданную базу данных только для чтения, это транзитное приложение, а источником данных являются данные расписания. Даты в следующем формате (от поставщика данных): «20110223» (что будет написано «23 февраля 2011 года»). Я просматривал пост и комментарии, рассказывая о справочной дате iPhone 2001 года, и корректировал значения даты / времени с учетом разницы секунд с того времени до вставки в sqlite. Мой скрипт импорта определяет столбец TIMESTAMP для хранения этой дельты секунд. Примером столбца после сохранения будет «319766400».
Вот фрагмент Ruby в качестве примера того, что делает мой скрипт:
>> delta_seconds = Time.parse("20110223") - Time.local(2001, 1, 1, 0, 0, 0)
=> 320112000.0
>> Time.at(delta_seconds)
=> Fri Feb 22 19:00:00 -0500 1980
Обратите внимание, что запрос времени от delta_seconds (Time.at (delta_seconds)) показывает правильный день года (22 февраля), но в 1980 году, то есть через 10 лет после EPOCH - что кажется правильным. В Базовых данных я определил свой атрибут модели, который сопоставляется с этим полем БД, как «NSDate». Однако, когда я запускаю симулятор и проверяю отладчик, для каждого объекта я запрашиваю поле NSDate (start_date) следующим образом: [object valueForKey: @ "start_date"], которое дает мне "2001-08-21 18:10 : 19 по Гринвичу ". Другими словами, кажется, что он не читает значение дельта-секунд. Если бы это было так, я бы ожидал, что в этом случае будет применяться «10-летняя секунда» и придет дата «2011».
Можете ли вы определить, что я делаю не так? Любые предложения о возможных исправлениях? Спасибо! (Основные данные iOS 4.1)
Или : может ли кто-нибудь опубликовать значение из своей базы данных sqlite, которое считывает Базовые данные, из столбца, который должен быть источником поля NSDate? Пример значения из моей базы данных: 320371200
, который, кажется, не работает.