フィールドの1つが日付用で、現在のインスタンスの日付と時刻を保存するテーブルをSQLiteで作成します。どのデータ型を使用する必要がありますか?
「タイムスタンプ」を使用する予定です。現在のタイムスタンプ値をフィールドに挿入する方法は?また、この日付フィールドのコンテンツ値を書き込む方法は?
SQLiteは、標準SQL変数CURRENT_DATE
、CURRENT_TIME
、およびCURRENT_TIMESTAMP
をサポートしています。
INSERT INTO Date (LastModifiedTime) VALUES(CURRENT_TIMESTAMP)
SQLiteのデフォルトの 日付/時刻のデータ型 はTEXT
です。
ContentValues
は一般的なSQL式の使用を許可せず、固定値のみを使用できるため、Javaで現在の時刻を読み取る必要があります。
cv.put("LastModifiedTime",
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
INSERT INTO Date (LastModifiedTime) VALUES(DateTime('now'))
さらに参照するには、この site を使用します。
現在のローカル(システム)時間を取得するには、 'localtime'オプションを追加します。
select datetime( 'now'、 'localtime');
私はアプリでタイムスタンプを頻繁に使用しています。私にとってタイムスタンプを保持する最良の方法は、ミリ秒単位で変換することです。その後、任意のロケールに簡単に変換できます。
現在の時刻が必要な場合は、System.currentTimeMillis()を使用します。コンテンツの値は使いやすいです。あなたとフィールドと値は次のようになります。
ContentValues ins_reminder = new ContentValues();
ins_reminder.put("REMIND_TIMESTAMP", System.currentTimeMillis());