Тип даты в базе данных Android - PullRequest
0 голосов
/ 23 ноября 2011

Я новый стартер Android. У меня простой вопрос. Когда я выбираю дату через datePickerDialog и нажимаю кнопку подтверждения, я хочу сохранить дату в формате даты вместо строки. Как я могу сохранить формат даты?

private static final String DATABASE_CREATE = 
"create table fridge_table (_id integer primary key autoincrement, "+
"category text not null, name texct not null, expired_date text not null);";

public void onCreate(SQLiteDatabase db)
{
  db.execSQL(DATABASE_CREATE);
}

Как я могу изменить поле expired_Date? некоторые люди говорили, используя длинные или дату. Мне интересно, как хранить в sqlite.

Во что я пытаюсь конвертировать дату, я хочу установить будильник через это поле. Не могли бы вы помочь мне? и если у вас есть какой-либо пример, пожалуйста, дайте мне пример.

Ответы [ 3 ]

3 голосов
/ 23 ноября 2011

SQLite версии 3 поддерживает только следующие типы данных, поэтому вы не можете сохранить дату как тип даты.Вы должны использовать класс Calendar Java для преобразования текста в дату при извлечении и сохранении из базы данных

NULL. The value is a NULL value.
INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes 
    depending on the magnitude of the value.
REAL. The value is a floating point value, stored as an 8-byte IEEE floating
   point number.
TEXT. The value is a text string, stored using the database encoding (UTF-8,
   UTF-16BE or UTF-16LE).
BLOB. The value is a blob of data, stored exactly as it was input.
2 голосов
/ 23 ноября 2011

Тогда вы можете использовать объект календаря.

Вы можете сэкономить время, как:

Calendar cal=Calendar.getInstance();
//set date,month,year,time etc. according to your need to cal object
//add expired_date's value as cal.getTimeInMillis()

Вы также можете получить то же самое, используя:

long date=cursor.getLong(cursor.getColumnIndex("expired_date"));
Calendar cal=Calendar.getInstance();
cal.clear();
cal.setTimeInMillis(date);
// you can use any format to display this time using String.format() method.

Для различных вариантов формата даты, посетите http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

РЕДАКТИРОВАТЬ:

Например:

Calendar cal=Calendar.getInstance();
String date_time=String.format("%1$te %1$tB %1$tY,%1$tI:%1$tM:%1$tS %1$Tp",cal);
Toast.makeText(getApplicationContext(),date_time,Toast.LENGTH_SHORT).show();
//this will show a toast containing current date and time in format "23 January 2010,12:30:15 pm"
0 голосов
/ 23 ноября 2011

Вы можете преобразовать дату из ее формата в тип Long, чтобы у вас были миллисекунды в типе long.Затем вы можете преобразовать эти миллисекунды в Long в строку и сохранить их как тип данных TEXT для базы данных.

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