Сохранение Дат к SQLite3 в приложении для iPhone

Использование проверки -e будет проверять файлы, и это включает в себя каталоги.

if [ -e ${FILE_PATH_AND_NAME} ]
then
    echo "The file or directory exists."
fi
16
задан Noah 14 February 2009 в 00:53
поделиться

5 ответов

Я обычно использую двойное, что-то как:

sqlite3_bind_double(statement, index, [dateObject timeIntervalSince1970]);

, где dateObject является NSDate*. Затем при вытаскивании данных из DB используйте

[NSDate dateWithTimeIntervalSince1970:doubleValueFromDatabase];
21
ответ дан 30 November 2019 в 16:25
поделиться

Хранилище как типичный C-time (например, значение time_t/int, возвращенное временем ()), оценивает в столбце UNSIGNED INT. Преобразуйте как drewh, сказанный с NSDate:

- timeIntervalSince1970
- dateWithTimeIntervalSince1970:(double)value

Кроме хранилища как целое число, если Вам не нужна подвторая гранулярность (который, обычно, для created-on/last-modified, излишество). Неподписанные ints намного меньше и легче обработать, чем удваивается. В то время как это не может иметь значения в большей части рабочего стола и веб-приложений больше, он, конечно, помогает на iPhone. Каждый немного помогает.

Одна дополнительная льгота C-времен, которые не понимает большинство людей, - то, что они - агностик часового пояса. Если когда-нибудь необходимо поддерживать несколько часовых поясов, это пригождается.

9
ответ дан 30 November 2019 в 16:25
поделиться

Я преобразовываю в строки ISO8601: http://en.wikipedia.org/wiki/ISO_8601

Намного больше readible/hackable, чем временные интервалы.

8
ответ дан 30 November 2019 в 16:25
поделиться

Согласно документам нет никакого Типа данных datetime! Я использую реальный тип данных и преобразовываю NSDate в реальный использование метод timeIntervalSinceReferenceDate .

2
ответ дан 30 November 2019 в 16:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: