2011-11-23 3 views
0

私は新しいstarter androidです。 私は簡単な質問があります。 datePickerDialogからdateを選択して確定ボタンを押すと、日付を文字列ではなく日付形式で保存します。 日付形式はどのように保存できますか?Androidデータベースの日付タイプ

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に格納する方法が不思議です。

私は日付を変換しようとしていますが、このフィールドにアラームを設定したいと思います。 私を助けることができますか?例があれば、いくつかの例を教えてください。

答えて

2

次に、カレンダーオブジェクトを使用できます。

あなたのような時間を節約することができます:あなたはまた、使用して同じを取得することができ

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

EDIT:

例十分:

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

つまり、最初に文字列型をLong型に変更する必要がありますか? – wholee1

+0

実際にはそうではありません。長い/長い日付/時刻を変更する必要があります。私の答えには、提供されたリンクのformateを使用して、人間が読める文字列に変換できます。私の編集した答えを見てください。私はそこに例を挙げています! – Hiral

+0

返信いただきありがとうございます。私はあなたのコーディングをしようとしていますが、それでも動作しません。私は文字列にしようとしていますdate_format = String.format( "%td-%tm-%tY"、cal);時間の代わりに。そうですか?元のテキストは'24/11/2011 'のようでした。それは正しいフォーマットですか、私は ' - 'を '/'に変更する必要がありますか?私はこれにしようとすると、私はそれを取得しません.. – wholee1

3

SQLiteバージョン3では、次のデータ型のみがサポートされているため、日付を日付型として保存することはできません。データベース

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. 
0

から取得して格納する際に あなたが長いデータでミリ秒を持っていますので、あなたは、ロングタイプにそのフォーマットから、あなたの日付に変換することができます日付への変換テキストを行うために、JavaのCalendarクラスを使用する必要がありますタイプ。その後、Longのミリ秒を文字列に変換し、データベースのTEXTデータ型として格納できます。

関連する問題