Как я могу хранить данные календаря в базе данных - PullRequest
3 голосов
/ 04 сентября 2011

Я хочу сохранить в своей базе данных Android запись календаря.Нет проблем хранить простые типы, такие как int и String, в базе данных.Но я не могу понять, как хранить тип календаря.

Моя таблица выглядит следующим образом: создайте пожелания таблицы (автоинкремент первичного ключа целого числа _id, "+" текст имени не нулевой, "+" текст даты, текст picurl, .....)

Все объявлено как «текст».

В моей деятельности у меня есть этот код: Календарь cal = Calendar.getInstance ();

cal должен храниться в моей таблице.Может кто-нибудь дать подсказку?

Ответы [ 3 ]

4 голосов
/ 04 сентября 2011

Сохраните миллисекунды из эпохи представления календаря:

long millis = calendar.getTimeInMillis();

Затем сохраните это длинное в БД.Вы можете восстановить календарь, прочитав длинное значение из БД и используя setTimeInMillis(long millis) в календаре.

3 голосов
/ 04 сентября 2011

Чтобы иметь стабильное и независимое от локализации решение, я бы предложил изменить таблицу базы данных, чтобы хранить дату как можно дольше. Вы можете получить календарную дату так же долго, как dateCalendar.getTimeInMillis(), и когда вы читаете ее, вы добавляете строку вроде

long dateAsMillis;
dateCalendar = Calendar.getInstance();
dateCalendar.setDate(dateAsMillis);

Но если вам действительно нужно / хотите работать со строками, взгляните на DateFormat.parse (String) - вы можете определить формат ваших дат и, следовательно, создать объект Date из String .

0 голосов
/ 04 сентября 2011

Я бы преобразовал вашу дату в строку и сохранил эту строку в базе данных. Затем, когда вы читаете String из базы данных, просто анализируйте его обратно в Date.

...