Как бы я сохранил NSDate в базе данных SQLite? - PullRequest
2 голосов
/ 16 февраля 2011

В моей базе данных SQLite у меня есть столбец с именем datekey типа TIMESTAMP.

Как мне сохранить мой NSDate объект в базе данных?

Из одного из моих классов я уже конвертировал NSString в соответствующую дату, подобную этой

dateStr = [NSString stringWithFormat:@"%@ 00:00:00 AM +0000",dateStr];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MMM-yyyy HH:mm:ss a Z"];
NSDate *dateToBeReturned = [formatter dateFromString:dateStr];

Теперь я хочу сохранить это «dateToBeReturned» в базе данных SQLite.

Пожалуйста, помогите

1 Ответ

12 голосов
/ 16 февраля 2011

Отметка времени - это целое число секунд с 1970 года, поэтому мы можем использовать следующий метод:

[[NSDate date] timeIntervalSince1970];

Замените [Дата NSDate] на ваш объект NSDate.

Обновление:

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

Еще одна вещь, которую я забыл упомянуть, это то, что эта временная метка не содержит информацию о часовом поясе, которая может иметь отношение к вашему конкретному приложению. Существуют строковые форматы, которые сохраняют это с помощью NSDateFormatter, но вы также можете просто добавить отдельный столбец, содержащий информацию о часовом поясе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...